如何在Encog中标准化CSV输入数据?

通过设计Prime

我已经使用Jeff Heaton的Encog库成功制作了神经网络。我目前正在使用它进行分类(虹膜植物)。

我现在遇到的问题如下:

我有一个包含理想输出的数据集CSV文件,并将其用于训练。我希望使用一个单独的CSV文件,其中不包含用于识别的输出字段。我的问题是,当我使用不带输出字段的新CSV时,尝试规范化我的文件时出现以下错误:

错误:

“无法自动确定目标字段,请指定一个。

如果您指定了错误的文件格式,也会发生这种情况。”

这是方法:

        public void NormalizeFile(FileInfo SourceDataFile, FileInfo NormalizedDataFile)
    {
        var wizard = new AnalystWizard(_analyst);

        // This line errors
        wizard.Wizard(SourceDataFile, _useHeaders, AnalystFileFormat.DecpntComma); 

        var norm = new AnalystNormalizeCSV();
        norm.Analyze(SourceDataFile, _useHeaders, CSVFormat.English, _analyst);
        norm.ProduceOutputHeaders = _useHeaders;
        norm.Normalize(NormalizedDataFile);
    }

当我进行训练时,涉及归一化训练数据。我保存规范化数据。然后,我在识别时重新加载此规范化数据。

如果我将输出列保留在我所识别的数据中,那么它将起作用!如果分类未知,那么新数据的情况又如何呢?

例如,当使用以下格式作为要识别的文件时:

sepal_l,sepal_w,pallet_l,petal_w,名称

然后添加具有预期输出的另一列,如下所示:

sepal_l,sepal_w,pallet_l,pallet_w,名称,预测,

但是我希望能够输入没有名称列的文件。

非常感谢,基兰

阿比舍克·库马尔(Abhishek kumar)

您可以通过多种方式完成任务。但是,典型的流程为:

获取数据->使用encog分析器中存储的归一化信息对其进行归一化--->创建归一化输入的输入数组->将其传递给训练有素的网络并计算输出(或预测分类问题中的类)

我已经针对该场景(在Pluralsight课程中介绍了该场景)更新了Iris演示(评估阶段)

这是代码的一部分:

    // Evaluating a new data set with no class information
         var extraEvaluationSet = EncogUtility.LoadCSV2Memory(Config.ExtraEvaluationFile.ToString(),
           network.InputCount, 0, true, CSVFormat.English, false);

         int extraFileCount = 0;
         using (var file = new System.IO.StreamWriter(Config.ExtraEvaluationFileOutput.ToString()))
         {
             file.WriteLine("sepal_l,sepal_w,petal_l,petal_w,predicted");
             foreach (var item in extraEvaluationSet)
             {
                 //normalize input
                 double normalized_sepal_l = analyst.Script.Normalize.NormalizedFields[0].Normalize(item.Input[0]);
                 double normalized_sepal_w = analyst.Script.Normalize.NormalizedFields[1].Normalize(item.Input[1]);
                 double normalized_petal_l = analyst.Script.Normalize.NormalizedFields[2].Normalize(item.Input[2]);
                 double normalized_petal_w = analyst.Script.Normalize.NormalizedFields[3].Normalize(item.Input[3]);
                 double[] inputToNetwork = { normalized_sepal_l, normalized_sepal_w, normalized_petal_l, normalized_petal_w };

                 count++;
                 //output
                 var output = network.Compute(new BasicMLData(inputToNetwork));

                 int classCount = analyst.Script.Normalize.NormalizedFields[4].Classes.Count;
                 double normalizationHigh = analyst.Script.Normalize.NormalizedFields[4].NormalizedHigh;
                 double normalizationLow = analyst.Script.Normalize.NormalizedFields[4].NormalizedLow;

                 var eq = new Encog.MathUtil.Equilateral(classCount, normalizationHigh, normalizationLow);
                 var predictedClassInt = eq.Decode(output);
                 var predictedClass = analyst.Script.Normalize.NormalizedFields[4].Classes[predictedClassInt].Name;
                 var resultLine = string.Format("{0},{1},{2},{3},{4}", item.Input[0], item.Input[1], item.Input[2], item.Input[3],predictedClass);
                 file.WriteLine(resultLine);
                 Console.WriteLine("Count :{0} Properties [{1},{2},{3},{4}] ,Predicted : {5} ",
                      extraFileCount, item.Input[0], item.Input[1], item.Input[2], item.Input[3], predictedClass);

             }

         }

该演示代码位于以下链接上:http : //bit.ly/1GRg0u7(请在执行之前编辑数据文件夹路径)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Encog中标准化非CSV数据

来自分类Dev

如何在熊猫中标准化

来自分类Dev

如何在Python中标准化数据集以进行线性/多元回归

来自分类Dev

如何在Tensorflow Keras中标准化我的图像数据

来自分类Dev

如何在Lucene中标准化未知字符?

来自分类Dev

如何在python中标准化numpy数组

来自分类Dev

如何在Java中标准化Unicode数字

来自分类常见问题

如何在R中标准化字符串

来自分类Dev

如何在python中标准化直方图?

来自分类Dev

如何在OpenGL / LWJGL中标准化鼠标坐标

来自分类Dev

如何在PySNMP中标准化OID索引检索?

来自分类Dev

如何在DataFrame中标准化每个组?

来自分类Dev

如何在R中标准化字符串

来自分类Dev

如何在Lucene中标准化未知字符?

来自分类Dev

如何在openCV中标准化图像?

来自分类Dev

在Redshift中标准化数据

来自分类Dev

SVM scikitlearn的标准化或标准化数据输入

来自分类Dev

如何从大数据中标准化列表中元素的格式

来自分类Dev

如何在T-SQL中标准化混合日期格式的列

来自分类Dev

如何在JHipster应用程序中标准化REST错误?

来自分类Dev

如何在pytorch中标准化-1和1之间的PIL图像以进行变换。

来自分类Dev

如何在Keras中的多变量多步LSTM实现中标准化(和反转预测)

来自分类Dev

如何在C中标准化路径(删除所有重复的'/')

来自分类Dev

如何在R中标准化较长的十进制数?

来自分类Dev

如何在单个字段中标准化多值(SQL)

来自分类Dev

如何在源代码控制的项目中标准化Simulink mdl文件保存方法?

来自分类Dev

在画布WPF中标准化现实世界数据

来自分类Dev

在长格式数据框中标准化日期

来自分类Dev

在散点图中标准化的多个数据集

Related 相关文章

热门标签

归档