利用多个台风参数作为输入,建立了预报台风发生的神经网络。到目前为止,我们已经能够生成数据和训练神经网络使用Encog 3.2。现在,我们需要评估训练的结果。
我们使用ForestCover项目(在Encog3.2示例中)作为参考,但是该项目的评估代码用于分类神经网络。因此,我们无法按照该项目的代码来评估我们的神经网络。
我们还检查了PredictMarket项目(在Encog3.2示例中),因为它是一个预测神经网络。但是我们在使用MLData方面遇到了困难。
MLData output = network.compute(inputData);
我们希望提取输出的内容,并将其与evaluation.csv的内容进行比较,用于神经网络评估。
,我们是否可以将输出的变量提取/转换为规范化的值,然后将其与标准化的evaluation.csv?进行比较?
或
我们是否可以修改 ForestCover Evaluate.java 文件以评估预测神经网络?
谢谢。
发布于 2016-01-19 18:10:18
下面是一个C#示例(Java应该类似),它写出一个.csv文件(TestResultsFile),其中包含非规范化的预期结果和实际结果,这样您就可以将它们与Excel图表进行比较。
var evaluationSet = (BasicMLDataSet)EncogUtility.LoadCSV2Memory(Config.EvaluationNormalizedFile.ToString(),
network.InputCount, network.OutputCount, true, CSVFormat.English,
false);
var analyst = new EncogAnalyst();
analyst.Load(Config.NormalizationAnalystFile);
// Change this to whatever your output field index is
int outputFieldIndex = 29;
using (var resultsFile = new System.IO.StreamWriter(Config.TestResultsFile.ToString()))
{
foreach (var item in evaluationSet)
{
var normalizedActualOuput = (BasicMLData)network.Compute(item.Input);
var actualOutput = analyst.Script.Normalize.NormalizedFields[outputFieldIndex].DeNormalize(normalizedActualOuput.Data[0]);
var idealOutput = analyst.Script.Normalize.NormalizedFields[outputFieldIndex].DeNormalize(item.Ideal[0]);
var resultLine = String.Format("{0},{1}", idealOutput, actualOutput);
resultsFile.WriteLine(resultLine);
}
}
其中很大一部分来自[医]阿比舍克·库马尔(氏)视场的想法。
如果您真的想比较规范化的值,只需删除对"Denormalize“的两个调用即可。
https://stackoverflow.com/questions/34784667
复制