Weka GUI:添加属性缺失值
Weka GUI: add attribute is-missing-value
我有几个属性缺少值。
这是一项调查,所以此人拒绝回答这一事实本身就是有用的信息!
如果属性中的给定值是缺失值,我想创建一个名为 is-missing-value = 1
的新属性,否则 0
。
我尝试过的事情:
- 我试过使用AddExpression,但这似乎只能执行2*属性等算术运算。
- 我知道 MathExpression 允许使用 if-elses,例如
ifelse(A < 3.0, 1, 0)
... 你们知道吗 if/how 我可以测试一个值是楠吗?
- MakeIndicator(或NominalToBinary)应该可以做我想做的,但我想我需要 (i) 转换我的将缺失值转换为标称值,以便 (ii) 我可以将这个新的标称值转换为二进制。问题是 ReplaceMissingValue 仅适用于众数或均值;我需要能够定义一个新值。一种解决方案是直接编辑数据,但我宁愿避免这种情况。
请注意,我需要使用 Weka GUI 来执行此操作,而不是 Java 界面。
我想我有适合你的解决方案:
- 复制属性(如果您希望保留原始属性):应用具有属性索引的
copy
过滤器(此过滤器和以下过滤器均位于 unsupervised/attribute
文件夹下)
- 使用
numericToNominal
过滤器(设置属性索引)将您的属性转换为名义属性
- 使用
ReplaceMissingWithUserConstant
用新值填充缺失值。在这里,除了属性的索引之外,您还需要指定 nominalStringReplacementValue
参数(例如 "missing")。
- 对您的属性应用
NominalToBinary
过滤器。这将创建几个新属性(作为数据集中唯一值的数量 + 缺失值)。您可以删除不需要的属性,只保留缺少的属性。
希望对您有所帮助。
我有几个属性缺少值。
这是一项调查,所以此人拒绝回答这一事实本身就是有用的信息!
如果属性中的给定值是缺失值,我想创建一个名为 is-missing-value = 1
的新属性,否则 0
。
我尝试过的事情:
- 我试过使用AddExpression,但这似乎只能执行2*属性等算术运算。
- 我知道 MathExpression 允许使用 if-elses,例如
ifelse(A < 3.0, 1, 0)
... 你们知道吗 if/how 我可以测试一个值是楠吗? - MakeIndicator(或NominalToBinary)应该可以做我想做的,但我想我需要 (i) 转换我的将缺失值转换为标称值,以便 (ii) 我可以将这个新的标称值转换为二进制。问题是 ReplaceMissingValue 仅适用于众数或均值;我需要能够定义一个新值。一种解决方案是直接编辑数据,但我宁愿避免这种情况。
请注意,我需要使用 Weka GUI 来执行此操作,而不是 Java 界面。
我想我有适合你的解决方案:
- 复制属性(如果您希望保留原始属性):应用具有属性索引的
copy
过滤器(此过滤器和以下过滤器均位于unsupervised/attribute
文件夹下) - 使用
numericToNominal
过滤器(设置属性索引)将您的属性转换为名义属性 - 使用
ReplaceMissingWithUserConstant
用新值填充缺失值。在这里,除了属性的索引之外,您还需要指定nominalStringReplacementValue
参数(例如 "missing")。 - 对您的属性应用
NominalToBinary
过滤器。这将创建几个新属性(作为数据集中唯一值的数量 + 缺失值)。您可以删除不需要的属性,只保留缺少的属性。
希望对您有所帮助。