【问题标题】:Weka GUI: add attribute is-missing-valueWeka GUI:添加属性 is-missing-value
【发布时间】:2018-01-21 12:47:13
【问题描述】:

我有几个缺少值的属性。

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

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

我尝试过的事情:

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

请注意,我需要使用 Weka GUI,而不是 Java 界面来执行此操作。

【问题讨论】:

    标签: weka missing-data


    【解决方案1】:

    我想我有一个适合你的解决方案:

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

    希望对您有所帮助。

    【讨论】:

    • 我最终使用了 Excel,但这真的很聪明,谢谢!
    猜你喜欢
    • 2019-02-25
    • 1970-01-01
    • 2018-06-27
    • 1970-01-01
    • 2015-01-15
    • 2012-09-08
    • 2016-08-22
    • 1970-01-01
    • 2019-05-19
    相关资源
    最近更新 更多