#69 Section 24 クラスタリング(5)モデルの分析

-- Views

March 03, 26

スライド概要

学習済みモデルの分析には主にplot_model関数を使用します。引数plotの指定により、以下の視覚的評価が可能です。

cluster: PCA(主成分分析)で次元圧縮し、クラスタの分離や凝集度を可視化します。

elbow: エルボー法により、誤差の推移から最適なクラスタ数(K値)を判断します。

silhouette: シルエット図で各データの適合度を確認します。平均線に届かないクラスタや「迷子」データの有無で質を評価します。

分析の目的に応じて、全体像を掴むPCAと、局所的な固まりを見るt-SNEなどを使い分けることが、精度の高いモデル評価に繋がります。

profile-image

すべてのビジネスパーソンが意思決定プロセスにデータを活用する思考を身につけるため、まずは、データサイエンスの分析を体験していきましょう。SECIモデルの最初の段階、共同化(Socialization)からはじめていきます。 下記のブログで、ここにアップしたスライド、動画を随時、公開中です。 【ブログ】https://tutorial4datascience.blogspot.com/ 【Youtubeチャンネル】https://www.youtube.com/@DataScience_for_everyone 【Kindle】そして、このブログをまとめて書籍にしました!   https://amzn.to/4ryVppn   https://amzn.to/4pGgFb1

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

(ダウンロード不可)

関連スライド

各ページのテキスト
1.

4th STEP 機械学習 Section 24 クラスタリング(5) モデルの分析 Setup Create Model Assign Model Analyze Model データサイエンス チュートリアル Prediction Save Model 1

2.

4th STEP 機械学習 Section 24 クラスタリング(5)モデルの分析 plot_model関数 assign_model関数で、クラスターラベルの付与を行ったところで、チュートリアルの『Analyze Model(モデルの評価)』に 進みましょう。 分類や回帰と同様に、plot_model関数を使用すると、学習済みモデルのパフォーマンスをグラフによって分析できます。 plot_model(モデル名, plot='グラフの種類’) クラスタリングでplot_model関数のグラフの種類についての詳細は、下記の公式ドキュメントの『Examples by module→Clustering』を参照してください。 https://pycaret.gitbook.io/docs/get-started/functions/analyze#clustering データサイエンス チュートリアル 2

3.

4th STEP 機械学習 Section 24 クラスタリング(5)モデルの分析 plot_model関数 引数 'cluster' まずは、引数を『plot = ‘cluster’』としたコードが書かれています。これは、「クラスタリングの結果を可視化せよ」という 指示ですが、2次元のグラフに表示するために*PCAという次元圧縮技術が自動的に適用されます。 *PCA(主成分分析/Principal Component Analysis):たくさんの変数を持つデータを特徴を保ち ながら少数の変数で表現する次元削減の手法の一つ。『第1主成分』、『第2主成分』という新しい2つの 指標にまとめ上げることができます。 データサイエンス チュートリアル 3

4.

4th STEP 機械学習 Section 24 クラスタリング(5)モデルの分析 plot_model関数 引数 ‘cluster’ の出力 第二主成分 出力されたグラフから、このモデルは「非常に良好にクラスタリングができている」 と評価できます。 ●クラスタ間の分離(Separation)が明確 4つのグループ(Cluster 0〜3)が、平面上で互いに離れた位置 に固まっています。これは、モデルがデータ間の明確な違いを捉えられ ていることを示します。 ●クラスタ内の凝集度(Cohesion)が高い 各色がバラバラに散らばることなく、特定のエリアに集中して分布して います。これは、同じクラスタ内のデータが互いに似た性質を持ってい ることを意味します。 第一主成分 ●ノイズ(混合)が少ない 一部、Cluster 3(赤)とCluster 0(青)の境界付近でデータ が混じり合っている箇所がありますが、全体としては境界線がはっきり しています。 データサイエンス チュートリアル 4

5.

4th STEP 機械学習 Section 24 クラスタリング(5)モデルの分析 plot_model関数 引数 ’elbow’ とその出力 Section 22でも体験しましたが、これは、クラスター 数をいくつにするのが最適かを判断するためのグラフ です。 クラスター数を1、2、3... と増やしていき、それぞれの ケースで「各データ点とその所属するクラスタの中心点 との距離の合計(誤差の総和)」を計算し、グラフ化 したものです。 グラフの形から、エルボー法と呼ばれています。 このグラフからは、データに対して最も効率的なクラス ター数が3個であることが読み取れます。 クラスター中心点との距離の総和 次は、引数を『plot = ‘elbow’』にしたコードが書か れています。 クラスター数 データサイエンス チュートリアル 5

6.

4th STEP 機械学習 Section 24 クラスタリング(5)モデルの分析 plot_model関数 引数 ’ silhouette’ とその出力 次は、引数を『plot = ’silhouette’』にしたコードが書かれています。『silhouette』は、シルエットと発音します。 Section 22でも体験しましたが、このグラフは、色分けされた塊が、 1つのクラスターを表し、塊の厚み(高さ)は、そのクラスターに含ま れるデータの数を表します。赤い破線は、平均シルエット係数です。 右に伸びていればいるほど(1に近いほど)、そのデータは「自分のク ラスターにふさわしい」ことを示します。 クラスターラベル 『0』以下の左側に突き出しているデータは、別のクラスターに入った ほうが適切だった可能性がある「迷子」のデータです。 このグラフを見ると、全体的にクラスタリングがよく行われているように 見えますが、一番下の青いクラスタが平均(赤い破線)に届かず、 他のグループと混ざり合っていて、あまり質が良くないことを意味してい ます。塊の厚みも、他に比べて、薄いようです。 前出のエルボー法では、最適クラスター数は3でしたので、デフォルト の4個の場合、このようなクラスターが出てしまうのかもしれません。 シルエット係数 【参考】 https://appswingby.com/シルエット係数-今更聞けないit用語集/ データサイエンス チュートリアル 6

7.

4th STEP 機械学習 Section 24 クラスタリング(5)モデルの分析 help(plot_model) 次のコードには、利用可能なプロットを確認するためのドキュメントとして、『# help(plot_model)』とあり、2行目の『#』を 削除して、『plot_model』のhelpを表示させてみました。 あまり役に立たないので、このhelpは無視して、次に進みます。 データサイエンス チュートリアル 7

8.

4th STEP 機械学習 Section 24 クラスタリング(5)モデルの分析 evaluate_model関数(1) plot_model関数の代替としてevaluate_model関数があります。*ipywidgetを使用するため、ノートブックでのみ使 用できます。 *ipywidget:プログラムを書いたり、実行できたりする対話式の分析環境JupyterLabで、インタラクティブな操作画面(UI)を作るためのライブラリです。 実行すると、出力は下記のようになります。 ①は、メニューボタンで、何もしない状態では、『Pipline Plot』が選択され、機械学習モデルを構築する際にPyCaretが自 動的に行った前処理を視覚的に表現しています(②)。SimpleImputerは欠損値の補完、 KMeansはK-means法 でクラスタリングを行ったことを表しています。 ここをクリックすると、それぞれの評価を可視化したグラフが現れます ① ② データサイエンス チュートリアル 8

9.

4th STEP 機械学習 Section 24 クラスタリング(5)モデルの分析 evaluate_model関数(2) 第二主成分 『t-SNE(3d)Dimensi...』のボタンをクリックすると、plot_model関数で引数を『plot = ‘cluster’』にした際と同じグ ラフを出力させることができます。 PCA(主成分分析)の結果を、『第1主成分』、『第2主成分』を軸にしてプロットした グラフです。 第一主成分 データサイエンス チュートリアル 9

10.

4th STEP 機械学習 Section 24 クラスタリング(5)モデルの分析 evaluate_model関数(3) ボタン『Cluster t-SNE(3d)』をクリックすると、『3d TSNE Plot for Clusters』というタイトルの3次元のグラフが出力さ れます。 これは、PCA(主成分分析)によるプロットと似ていますが、 「t-SNE(ティー・スネー)」 という次元削減手法を使うこと で、よりデータの細かな構造が浮き彫りになります。 「全体的な位置関係を知りたいときはPCA」、「似たもの同 士がどれだけ固まっているかを見たいときはt-SNE」と使い 分けると、より説得力のある分析ができるようになります。 また、このグラフは、ドラッグすることにより見る角度を変えるこ とができますので、クラスターの分離がよくわかる角度で見て みましょう(見せましょう)! 【参考】 https://qiita.com/g-k/items/120f1cf85ff2ceae4aba データサイエンス チュートリアル 10

11.

4th STEP 機械学習 Section 24 クラスタリング(5)モデルの分析 ボタン『Elbow Plot』をクリックすると、 『Distortion Score Elbow for KMeans Clustering』というタイトルのグラフが出力さ れます。 詳細は、スライド5を参照ください。 クラスター中心点との距離の総和 evaluate_model関数(4) クラスター数 データサイエンス チュートリアル 11

12.

4th STEP 機械学習 Section 24 クラスタリング(5)モデルの分析 ボタン『Silhouette Plot』をクリックすると、 『Silhouette Plot of Kmeans Clustering for 505 Samples in 4 Centers』というタイトルのグラフが出力されま す。 詳細は、スライド6を参照ください。 クラスターラベル evaluate_model関数(5) シルエット係数 データサイエンス チュートリアル 12

13.

4th STEP 機械学習 Section 24 クラスタリング(5)モデルの分析 evaluate_model関数(6) ボタン『Distance Plot』をクリックすると、『KMeans Intercluster Distance Map』というグラフが表示されます。 これは、クラスタ間の距離と各クラスタの規模という2つの視点で評 価するためのグラフです。 ●円の大きさ(Size): そのクラスタに含まれるデータポイントの 数を表します。円が大きいほど、多くのデータ(サンプル)がその グループに属していることを意味します。 ●円同士の距離(Distance): 2次元平面上の距離として、 クラスタ間の類似性を表します。円が離れているほど、それらのグ ループは互いに異なる性質を持っており、重なっている場合は性 質が似通っている(分離が不十分な可能性がある)ことを示し ます。 ●中心からの位置: 多次元尺度構成法(MDS)という手法 を用いて、高次元のクラスタ中心の関係を2次元に投影して います。 13 データサイエンス チュートリアル

14.

4th STEP 機械学習 Section 24 クラスタリング(5)モデルの分析 evaluate_model関数(7) データの個数 ボタン『Distribution Plot』をクリックすると、「各ク ラスターに何個のデータが含まれているか」を表示 するグラフが出力されます。 クラスター番号 データサイエンス チュートリアル 14