Weka の XMeans クラスタラーに問題があります。私は他の数人の人間と話をしましたが、下のスクリーンショットには6つのクラスターがあることに全員が同意しています. いずれにせよ、xMeans は同意していないようです。
XMeans は、最小クラスター数の設定に基づいて、クラスター数を体系的に過小評価しているようです。クラスターの最大数が 100 に保持されている場合、得られる結果は次のとおりです。
-L 1 // 1 cluster
-L 2 // 2 clusters
-L 3 // 3 clusters
-L 4 // 5 clusters
-L 5 // 6 clusters
-L 6 // 6 clusters
最もひどいことに、-L 1
(および-H 100
) を使用すると、クラスターが 1 つしか見つかりません。最小クラスター数を 5 にすることによってのみ、実際に 6 つのクラスターが表示されます。構造改善パラメーターを (100,000 まで) 上げても効果はないようです。(他のオプションも試してみましたが、違いはありませんでした。) 以下は、上記のスクリーンショットを生成したオプションで、1 つの中心が見つかりました。
private static final String[] XMEANS_OPTIONS = {
"-H", "100", // max number of clusters (default 4)
"-L", "1", // min number of clusters (default 2)
"-I", "100", // max overall iterations (default 1)
"-M", "1000000", // max improve-structure iterations (default 1000)
"-J", "1000000", // max improve-parameter iterations (default 1000)
};
明らかに、ここで何かが欠けています。XMeans を期待どおりに動作させるにはどうすればよいですか?