Pythonでdbscanでクラスタリングをする

DBSCANは事前にクラスタ数を分けない、距離を用いた分類が可能なアルゴリズムです。sklearnに入っているので使ってみます。

コード

from sklearn.datasets import load_wine
wine = load_wine()

from sklearn.cluster import DBSCAN

dbscan= DBSCAN(eps=0.021,min_samples=3).fit(wine.data)
dbscan.labels_

パラメータは距離の種類がありますが、メインはepsmin_samplesです。epsは距離の指定であり、min_samplesは分類時のコアとなる点の閾値です。

DBSCANはこのパラメータで結果が大きくなるため、ここのチューニングが難しく、適切な利用パターンはまだまだ模索中です。(outlierに近い、変な分類でもうまくいくことがあるのはわかりますが、その場合に納得のある結果に落とせている感じがしない。)