【问题标题】:How to make weka treat empty strings as 0如何让weka将空字符串视为0
【发布时间】:2012-12-19 22:24:33
【问题描述】:

我正在使用 weka 对二进制数据进行聚类。注意我是直接通过API或者源码使用weka的。

例如,我的数据输入是一个巨大的 .csv 文件

attrib1, attrib2, atrib3
0,1,0
1,0,1
0,0,1

但是为了减小 .csv 的大小,数据提供者(我没有直接访问数据集的权限)会忽略零,并且上面的 sn-p 写为

    attrib1, attrib2, atrib3
    ,1,
    1,,1
    ,,1

所以我发现 weka 将两个逗号之间的值视为我不喜欢的“缺失值”(这是代码库中使用的术语)。

我一直在尝试直接通过源代码来解决它。

尤其是CSVLoader.getDataSet()CSVLoader.getInstance() 以及ConverterUtils.getToken() 似乎对这些东西负责。

我已经尝试了很多来更改代码并让 weka 将这个 null 值(因为 weka 认为它们是这样的)视为零,但我找不到解决方案。

谁能提供更好的解决方案?

【问题讨论】:

  • 查看我更新的答案,例如APRIORI 可以选择将缺失值视为 0。其他人可以将其替换为模式。

标签: null boolean data-mining cluster-analysis weka


【解决方案1】:

您是否考虑过使用arff 格式?

arff 格式的一个主要优点是它具有稀疏变体。

此外,我想您可以以某种方式添加自定义解析器。那么您是否考虑过只为您的个人 CSV 变体修改 CSV 解析器?做起来应该不会太难。

某些算法(例如 APRIORI)具有允许将缺失值视为 0 的参数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-10
    • 1970-01-01
    • 1970-01-01
    • 2013-09-27
    • 2022-11-12
    • 2018-07-25
    • 2020-07-06
    • 1970-01-01
    相关资源
    最近更新 更多