3

現在、大量のデータ ポイントを一定量のクラスターにクラスター化しようとしています。MOA のストリーミング ベースの k-means を試してみたかったのStreamKMです。ランダムデータを使用して私がやろうとしていることの非常に簡単な例は次のようになります:

StreamKM streamKM = new StreamKM();
streamKM.numClustersOption.setValue(5); // default setting
streamKM.widthOption.setValue(100000); // default setting
streamKM.prepareForUse();
for (int i = 0; i < 150000; i++) {
    streamKM.trainOnInstanceImpl(randomInstance(2));
}
Clustering result = streamKM.getClusteringResult();
System.out.println("size = " + result.size());
System.out.println("dimension = " + result.dimension());

ランダムなインスタンスは次のように作成されます。

static DenseInstance randomInstance(int size) {
    DenseInstance instance = new DenseInstance(size);
    for (int idx = 0; idx < size; idx++) {
        instance.setValue(idx, Math.random());
    }
    return instance;
}

ただし、指定されたコードを実行すると、クラスターが作成されないようです。

System.out.println("size = " + result.size()); // size = 0
System.out.println("dimension = " + result.dimension()); // NPE

他に注意する必要があることはありますか? または、MOA クラスタリングの概念について根本的な誤解がありますか?

4

1 に答える 1