Weka GUI:添加属性is-missing-value

时间:2018-01-21 12:47:14

标签: weka missing-data

我有几个缺少值的属性。

这是一项调查,因此该人拒绝回答的事实本身就是有用的信息!

如果属性中的给定值是缺失值,则我想创建一个名为is-missing-value = 1的新属性,否则为0

我尝试过的事情:

  • 我尝试使用 AddExpression ,但这似乎只执行算法操作,例如2 *属性。
  • 我知道 MathExpression 允许使用if-elses,例如ifelse(A < 3.0, 1, 0) ...你们知道我是否可以测试一个值是否为nan?
  • MakeIndicator (或 NominalToBinary )应该能够做我想要的,但我想我需要(i)将我的缺失值转换为标称值,所以然后(ii)我可以将这个新的名义值转换为二进制。问题是 ReplaceMissingValue 仅适用于模式或平均值;我需要能够定义一个新值。一种解决方案可能是直接编辑数据,但我宁愿避免这种情况。

请注意,我需要使用Weka GUI,而不是Java界面。

1 个答案:

答案 0 :(得分:0)

我想我有一个解决方案:

  1. 复制属性(如果您希望保留原始属性):使用属性索引应用copy过滤器(此以及以下过滤器都在unsupervised/attribute文件夹下)
  2. 使用numericToNominal过滤器(设置属性索引)
  3. 将属性转换为名义
  4. 使用ReplaceMissingWithUserConstant使用新值填充缺失值。除了您的属性索引之外,您还需要指定nominalStringReplacementValue参数(例如&#34;缺少&#34;)。
  5. 在您的属性上应用NominalToBinary过滤器。这将创建几个新属性(作为数据集中唯一值的数量+缺失值)。您可以删除不需要的属性,只保留缺少的属性。
  6. 希望它有所帮助。