X-means法でクラスタ数を推定する方法
前回、【クラスタ数の決め方の1つシルエット分析】について説明しました。 今回の記事はもう一つのクラスタ数を自動推定するX-meansについて紹介します。 x-meansとは x-meansは、k-meansのクラスター数kを自動推定しつつクラスタリングしてくれる手法です。k-meansの逐次繰り返しとBIC(Bayesian information criterion)による分割停止基準を用いて最適なクラスター数を決定します。 BICは重心の近くにガウス分布している仮定してBICを計算します。 詳細はx-meansの論文になります。 今回は「pyclustering」のライブラリを使用して、x-meansのクラスタ数推定を行います。 先ず、ライブラリの読み込み %matplotlib inline import pyclustering from pyclustering.cluster import xmeans import numpy as np import matplotlib import matplotlib.pyplot as plt from sklearn.cluster import KMeans from sklearn.datasets import make_blobs サンプルの作成 X, y = make_blobs(n_samples=5000, n_features=2, centers=4, cluster_std=1, center_box=(-10.0, 10.0), shuffle=True, …