我想知道是否可以使用一种带有无监督学习的NEAT网络类型,利用Encog框架。我希望利用它们的自组织特性,因为我的系统没有季节性特征。据我所知,只看到使用NEAT进行监督训练的网络示例。
我想知道是否可以使用一种带有无监督学习的NEAT网络类型,利用Encog框架。我希望利用它们的自组织特性,因为我的系统没有季节性特征。据我所知,只看到使用NEAT进行监督训练的网络示例。
免责声明:我对机器学习和Encog的知识都很低。
我认为“boxes”例子实际上演示了使用Encog的NEAT能力进行无监督学习。
要进行无监督学习,实现CalculateScore
接口,并在创建网络时将该评分评估器传递给NEATUtil.constructNEATTrainer(pop, score)
。
在此示例中,BoxesScore
实现了该接口,并调用TrialEvaluation
来计算适应度:
public double calculateFitness() {
final double threshold = BoxesScore.EDGE_LEN * BoxesScore.SQR_LEN;
double rmsd = Math.sqrt(this.accDistance / 75.0);
double fitness;
if(rmsd > threshold) {
fitness = 0.0;
} else {
fitness = (((threshold-rmsd) * 100.0) / threshold) + (this.accRange / 7.5);
}
return fitness
}
NeuralDataSet validationSet = new BasicNeuralDataSet(input,null);
,但事实并非如此。它抛出了异常“尝试在空对象引用上调用接口方法' double[] org.encog.ml.data.MLData.getData()”。 - murt