如何使weka将空字符串视为0

时间:2013-01-05 18:13:37

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

我正在使用weka来聚类二进制数据。请注意,我直接通过API或源代码使用weka。

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

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

但是为了减少.csv大小,数据提供者(我没有直接访问数据集)忽略零并且上面的代码片段是写的

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

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

我一直试图通过源代码直接解决问题。

特别是CSVLoader.getDataSet()CSVLoader.getInstance()以及ConverterUtils.getToken()似乎对此事负责。

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

有人可以提供更好的解决方案吗?

1 个答案:

答案 0 :(得分:1)

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

arff格式的一个主要好处是它有一个稀疏变体。

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

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