Translate

#67 Section 22 クラスタリング(3)モデルの作成

このSectionでは、『クラスタリング』のcreate_model関数を体験していきます。




1.create model関数の実行

チュートリアルの『Create Model』の項の最初は、create_model関数を使っています。

回帰では、前処理を行うsetup関数の次は、『compare_models()』行い、『create model関数』は、モデルの呼び出しと確認に使う程度でした。クラスタリングでのcreate model関数は、次のような機能を持っています。

① 指定したモデル名に基づいて、モデルを訓練
② 学習データの各行がどのクラスターに属しているか(Cluster ID)をラベルにして付与
③ 各評価指標による評価

上記のコードでは、代表的なモデル「K-means法」を指定して、①~③を実行しています。

出力は、下記スライドのように、③となります。




2.create model関数の出力

create model関数の出力は、各評価指標による評価となります。

主な各評価指標は、『Silhouette(シルエット係数)』、『Calinski-Harabasz』、『Davies-Bouldin』があります。

Silhouette(シルエット係数):1に近く、大きいほど良い
Calinski-Harabasz:大きいほど良い
Davies-Bouldin:0に近く、小さいほど良い




なお、なお、残りの右3つの評価指標『Homogeneity(均質性)』、 『Rand Index(ランド指数)』 、『Completeness(完全性)』は、 「外部評価指標」と呼ばれ、「正解(真のラベル)」が分かっている時に使うものです。

『正解(真のラベル)』を与えていない、あるいはデータセットに正解となる列が含まれていない状態の場合、すなわち、今回のような場合、これらの指標は計算できず「0」と表示されます。




【参考】 評価指標を使ったクラスタリングのブラッシュアップ

シルエット係数をグラフ化したところ、クラスター数がデフォルトの4つでいいのかと感じました。

そこで、エルボー法を用いて最適なクラスター数が3であることを確認し、クラスター数を3にしたkmeansの評価指標を算出してみました。

このように、評価指標を確認しながら、ブラッシュアップしていくことはとても重要なことです。詳細は、下記のスライドを参照してください。







3.モデルのリストアップ

PyCaretのクラスタリングのモデル(アルゴリズム)の一覧は、下記のコードで確認できます。

models()

出力には、コードを書く際に使う『ID』とクラスタリングの名称『Name』が出てきます。




【参考】 モデルの分類

出力されたクラスタリングのアルゴリズム(PyCaretではモデルと呼んでいます)は、下記のスライドのように分類されます。




【参考】 モデルの詳細

モデルの詳細は、下記のリンクを参照してください。

K-Means Clustering

Affinity Propagation

Mean Shift Clustering

Spectral Clustering

Agglomerative Clustering

Density-Based Spatial Clustering(DBSCAN)

OPTICS Clustering

Birch Clustering

K-Modes Clustering


4.再びcreate model関数の実行

『Create Model』の項の最後は、 create_model関数でモデル『meanshift(Mean Shift Clustering)』を訓練、Cluster IDをラベルにして付与、各評価指標を算出させています。

SilhouetteとDavies-Bouldinは改善しましたが、Calinski-Harabaszは数値が悪化してしまったようです。
































コメント