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_
パラメータは距離の種類がありますが、メインはeps
とmin_samples
です。epsは距離の指定であり、min_samplesは分類時のコアとなる点の閾値です。
DBSCANはこのパラメータで結果が大きくなるため、ここのチューニングが難しく、適切な利用パターンはまだまだ模索中です。(outlierに近い、変な分類でもうまくいくことがあるのはわかりますが、その場合に納得のある結果に落とせている感じがしない。)