gpt4 book ai didi

machine-learning - 向 encog Analyst 添加缺失的类

转载 作者:行者123 更新时间:2023-11-30 09:55:10 26 4
gpt4 key购买 nike

我正在进行 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 = False
analyst.Script.Normalize.NormalizedFields(8).Action = Encog.Util.Arrayutil.NormalizationAction.Equilateral

但是,当我保存分析文件时,

'save the analyst file
analyst.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 Analyst 保存我手动提供的所有类,而不仅仅是基础文件中的类。我该怎么做?

最佳答案

我可以使用这样的代码生成额外的 [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));

但我认为,如果您使用包含假行的数据文件来查找缺失值,情况会好得多。由于您可能会创建更多的数据文件来进行一些数据隔离(训练、交叉验证、测试),并创建标准化文件,因此我不认为添加带有一些额外无意义行的额外文件会显得太突兀了。

关于machine-learning - 向 encog Analyst 添加缺失的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34119744/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com