4

私は weka kmeans 分類子を使用しており、モデルを構築しました。今、各重心の中心値をクラスター化したいと考えています。weka UIで取得します

Attribute    Full Data          0          1
               (48836)    (39469)     (9367)
============================================
tt            428.6238   514.1345    68.3143

weka Java jarを使用して取得するにはどうすればよいですか?

私の weka クラスター トレーニング セットには、属性が 1 つしかありません。

属性名を取得するには: String attname =clusterCenters.get(0).attribute(0).name();

クラスターセンターの値を取得するには?

4

1 に答える 1

7

メソッドを呼び出すと、オブジェクトが取得getClusterCentroids()されます (weka-3-6-8)。これは、クラスターの中心を表すインスタンスのセットです (指定されたクラスターごとに 1 つ)。SimpleKMeansInstances

SimpleKMeans kmeans = ...
// your code
...
Instances instances = kmeans.getClusterCentroids();

インスタンス (重心) のセットを取得したら、そのサイズを で推測し、次の方法でそれらの値をnumInstances()使用して取得し、それらを反復処理できます。instance(int index)double value(int attIndex)

for ( int i = 0; i < instances.numInstances(); i++ ) {
    // for each cluster center
    Instance inst = instances.instance( i );
    // as you mentioned, you only had 1 attribute
    // but you can iterate through the different attributes
    double value = inst.value( 0 );
    System.out.println( "Value for centroid " + i + ": " + value );
}

それだけです。私はコードをコンパイルしていませんが、それが私のやり方です。

于 2013-01-08T07:31:42.910 に答える