階層的クラスタリングのデンドログラム

Beginner

This tutorial is from open-source community. Access the source code

はじめに

この実験では、AgglomerativeClustering と scipy に用意されている dendrogram メソッドを使って階層的クラスタリングの対応するデンドログラムをプロットする方法を学びます。

VM のヒント

VM の起動が完了したら、左上隅をクリックして ノートブック タブに切り替えて、Jupyter Notebook を使って練習しましょう。

時々、Jupyter Notebook が読み込み終わるまで数秒待つ必要がある場合があります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。

学習中に問題に遭遇した場合は、Labby にお尋ねください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。

必要なライブラリをインポートする

この実験に必要なライブラリをインポートして始めましょう。

import numpy as np
from matplotlib import pyplot as plt
from scipy.cluster.hierarchy import dendrogram
from sklearn.datasets import load_iris
from sklearn.cluster import AgglomerativeClustering

データセットを読み込む

sklearn.datasets モジュールの load_iris() 関数を使って、アイリスのデータセットを読み込みます。

iris = load_iris()
X = iris.data

モデルを作成する

次に、sklearn.cluster モジュールの AgglomerativeClustering() 関数を使って階層的クラスタリングモデルを作成します。

model = AgglomerativeClustering(distance_threshold=0, n_clusters=None)

モデルに適合させる

モデルオブジェクトの fit() メソッドを使って、階層的クラスタリングモデルを適合させます。

model = model.fit(X)

デンドログラムを描画する

scipy.cluster.hierarchy モジュールの dendrogram() 関数と、元のコードで定義された plot_dendrogram() 関数を使って、デンドログラムを描画します。

plt.title("Hierarchical Clustering Dendrogram")
plot_dendrogram(model, truncate_mode="level", p=3)
plt.xlabel("Number of points in node (or index of point if no parenthesis).")
plt.show()

まとめ

この実験では、AgglomerativeClustering と scipy に用意されているデンドログラムメソッドを使って階層的クラスタリングの対応するデンドログラムを描画する方法を学びました。アイリスのデータセットを読み込み、階層的クラスタリングモデルを作成し、そしてモデルに適合させました。最後に、scipy.cluster.hierarchy モジュールの dendrogram() 関数と元のコードで定義された plot_dendrogram() 関数を使ってデンドログラムを描画しました。