今回はX-meansというクラスタリングを試します。
前回試したMeanShiftと同様に、X-meansもクラスタ数を自動で設定してくれます。
X-meansは、k-meansのアルゴリズムに加えて、あるクラスタが正規分布2つで表されるのと1つで表されるのとでどちらが適切かを判定し、2つが適切な場合はクラスタ数を2つに分けるというアルゴリズムになります。
X-meansでクラスタリング
データは前回使用したワインの分類データセットを使います。(前回記事を参照)
まずx-meansライブラリをインストールします。(1行目)
クラスタ数の初期値として2を指定(5行目)していますが、適切なクラスタ数でクラスタリングを実施してくれます。
kmaxパラメータには最大クラスタ数を指定しています。(6行目)
最後にprocess関数をコールしてX-meansでクラスタリングを実行します。(7行目)
[Google Colaboratory]
1 | !pip install pyclustering |
[実行結果]
クラスタリング結果の可視化
クラスタリング結果を可視化します。
[Google Colaboratory]
1 | z_xm = np.ones(X_norm.shape[0]) |
[実行結果]
クラスタ数を指定せずに、期待するクラスタ数3となっていることが確認できました。