有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何评价Encog中的预测神经网络

我们正在创建一个神经网络,用几个台风参数作为输入来预测台风的发生。到目前为止,我们已经能够使用Encog 3.2生成数据并训练神经网络。现在,我们需要评估培训的结果

我们正在使用森林覆盖项目(在Encog 3.2示例中)作为参考,但是所述项目的评估代码用于分类神经网络。因此,我们不能按照上述项目的代码来评估我们的神经网络

我们还检查了PredictMarket项目(在Encog 3.2示例中),因为它是一个预测神经网络。但是我们在使用MLData时遇到了困难

MLData output = network.compute(inputData);

我们希望提取输出的内容,并将其与评估的内容进行比较。csv用于神经网络评估

是否有一种方法可以将输出变量提取/转换为标准化值,然后与标准化评估进行比较。csv

或者

有没有办法修改森林覆盖评估。java文件是否能够评估预测性神经网络

谢谢


共 (1) 个答案

  1. # 1 楼答案

    下面是一个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);
    
        }
    }
    

    其中大部分来自Abishek Kumar's Pluralsight Course的想法

    如果你真的想比较规范化的值,只需删除两个“反规范化”的调用