为Encog分析师添加缺失的类

我在进行Encog等边归一化。我的Encog分析师代码如下所示:

 'Analyst Dim analyst = New EncogAnalyst() 'Wizard Dim wizard = New AnalystWizard(analyst) Dim BaseFile As FileInfo = FileUtil.CombinePath(New FileInfo(CSV_EXPORTS_PATH), 'baseFile.csv') wizard.Wizard(BaseFile, True, AnalystFileFormat.DecpntComma)

我的基础文件并不包含索引为8的输入列的所有类别,因此我在进行等边归一化之前,通过添加所有类别来进行归一化,代码如下:

analyst.Script.Normalize.NormalizedFields(8).Classes.Clear()analyst.Script.Normalize.NormalizedFields(8).Classes.Add(New Encog.Util.Arrayutil.ClassItem("CLASS_1",0))analyst.Script.Normalize.NormalizedFields(8).Classes.Add(New Encog.Util.Arrayutil.ClassItem("CLASS_2",1))analyst.Script.Normalize.NormalizedFields(8).Classes.Add(New Encog.Util.Arrayutil.ClassItem("CLASS_3",2))analyst.Script.Normalize.NormalizedFields(8).Classes.Add(New Encog.Util.Arrayutil.ClassItem("CLASS_4",3))analyst.Script.Normalize.NormalizedFields(8).Classes.Add(New Encog.Util.Arrayutil.ClassItem("CLASS_5",4))analyst.Script.Normalize.NormalizedFields(8).Classes.Add(New Encog.Util.Arrayutil.ClassItem("CLASS_6",5))analyst.Script.Normalize.NormalizedFields(8).Classes.Add(New Encog.Util.Arrayutil.ClassItem("CLASS_7",6))analyst.Script.Normalize.NormalizedFields(8).Classes.Add(New Encog.Util.Arrayutil.ClassItem("CLASS_8",7))analyst.Script.Normalize.NormalizedFields(8).Output = Falseanalyst.Script.Normalize.NormalizedFields(8).Action = Encog.Util.Arrayutil.NormalizationAction.Equilateral

然而,当我保存我的分析师文件时,

'save the analyst fileanalyst.Save(AnalystFile)

我只得到了基础文件中存在的那些类别,ega文件中的片段如下所示:

[DATA:CLASSES]"field","code","name""TYPE_CLASS","CLASS_3","CLASS_3",1"TYPE_CLASS","CLASS_2","CLASS_2",12"TYPE_CLASS","CLASS_6","CLASS_6",33"TYPE_CLASS","CLASS_8","CLASS_8",1

因此,当我再次加载这个.ega文件时,如果输入包含除CLASS_3、CLASS_2、CLASS_6、CLASS_8之外的其他类别,我会收到一个错误,显示无法确定CLASS_1的类别

我希望Encog分析师能够保存我手动输入的所有类别,而不仅仅是基础文件中存在的那些类别。我该怎么做呢?


回答:

我能够使用如下代码生成额外的[DATA:CLASSES](请原谅我的C#代码,我不是VB程序员):

        analyst.Script.Fields[8].ClassMembers.Clear();        analyst.Script.Fields[8].ClassMembers.Add(new Encog.App.Analyst.Script.AnalystClassItem("CLASS_1", "CLASS_1", 0));        analyst.Script.Fields[8].ClassMembers.Add(new Encog.App.Analyst.Script.AnalystClassItem("CLASS_2", "CLASS_2", 1));        analyst.Script.Fields[8].ClassMembers.Add(new Encog.App.Analyst.Script.AnalystClassItem("CLASS_3", "CLASS_3", 2));        analyst.Script.Fields[8].ClassMembers.Add(new Encog.App.Analyst.Script.AnalystClassItem("CLASS_4", "CLASS_4", 3));

但我认为,如果你使用一个包含缺失值的假行的数据文件会更好。因为你可能会创建更多的数据文件来进行数据的分离(训练、交叉验证、测试),并且还会创建归一化文件,我认为添加一个包含一些额外无意义行的额外文件不会太麻烦。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注