2

各インスタンスが単一の属性値を持つデータセットがあり、それにクラスタリングを適用する必要があります。Java-ML (Java Machine Learning Library) は、このタスクに適しているように思えました。しかし、その中のクラス「データセット」は、一連の属性とクラスラベルとして構造化されたインスタンスのセットとして構造化されていることがわかりました。私の問題は、インスタンスごとに 1 つの属性があり、クラス ラベルがないことです。

これは私が試したサンプルコードで、クラスタリングを開始すると予期せず実行が終了しません。

    int k;
    Dataset dataset = new DefaultDataset();
    double[] val= {5,6,15,20,40,50,55,73};
    for(int i = 0; i < val.length; i++) {
        Instance instance= new SparseInstance(1);
        instance.put(1, val[i]);
        dataset.add(instance);
    }
    k = 3;
    Clusterer km = new KMeans(k);
    System.out.println(dataset);
    Dataset[] clusters = km.cluster(dataset);
    System.out.println(dataset);
    for(int i = 0; i < k; i++) {
        System.out.println(clusters[i]+"\n\n\n\n");
    }

このような予期しない動作の背後にある理由を理解できません。Java-ML 以外に私の仕事に適したライブラリはありますか?

前もって感謝します。

4

2 に答える 2

1

特徴値が 1 つしかない場合、クラスタリング アルゴリズムを使用する理由はほとんどありません。探している情報を見つけるには、ヒストグラムまたは KDE でプロットするだけで十分です。

于 2013-06-30T00:16:23.910 に答える