1

バイナリ データのクラスタリングに 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 は 2 つのコンマの間の値を「欠落値」(コード ベースで使用されている用語) として扱い、気に入らないことがわかりました。

ソースコードから直接解決しようとしています。

特に、CSVLoader.getDataSet()およびCSVLoader.getInstance()ConverterUtils.getToken()がこのようなことを担当しているようです。

私はコードを変更し、weka がこの null 値をゼロとして扱うようにするために多くのことを試みましたが (weka はそれがそうであると考えているため)、解決策を見つけることができません。

誰かがより良い解決策を提供できますか?

4

1 に答える 1

1

arffフォーマットの使用を検討しましたか?

arff 形式の主な利点は、スパース バリアントがあることです。

さらに、どうにかしてカスタム パーサーを追加できると思います。個人用の CSV バリアント用に CSV パーサーを変更することだけを検討しましたか? 難しいことではないはずです。

一部のアルゴリズム (APRIORI など) には、欠損値を 0 として処理できるパラメーターがあります。

于 2013-01-05T19:22:59.123 に答える