すでにクラスタを計算していて、ELKIライブラリのみを使用してこのクラスタリングの評価を実行したいとします。JavaでのELKIを使用した事前計算クラスタリングの評価
だから私は、この形式のデータを持っている:
0.234 0.923 cluster_1 true_cluster1
0.543 0.874 cluster_2 true_cluster3
...
私がしようとした:結果のラベルを持つと参照ラベルを持つ:
double [][] data;
String [] reference_labels, result_labels;
DatabaseConnection dbc1 = new ArrayAdapterDatabaseConnection(data, result_labels);
Database db1 = new StaticArrayDatabase(dbc1, null);
DatabaseConnection dbc2 = new ArrayAdapterDatabaseConnection(data, reference_labels);
Database db2 = new StaticArrayDatabase(dbc2, null);
は、2つのデータベースを作成します。各データベースのByLabelクラスタリングを実行します。
の措置をクラスタリングを比較し、取得するためのClustering<Model> clustering1 = new ByLabelClustering().run(db1); Clustering<Model> clustering2 = new ByLabelClustering().run(db2);
使用ClusterContingencyTableを:
ClusterContingencyTable ct = new ClusterContingencyTable(true, false); ct.process(clustering1, clustering2); PairCounting paircount = ct.getPaircount();
問題はmeasuersが計算されていないということです。
ContingencyTableとPairCountingのソースコードを調べました。クラスタリングが異なるデータベースから来ていて、データベースのラベル関係が1つしかない場合は動作しないようです。
ELKIでこれを行う方法はありますか?
3パラメータのコンストラクタを使用して、トリックを行いました。返信ありがとうございます。 –