はじめに
この実験では、scikit-learn ライブラリを使って Python で K-Means クラスタリングアルゴリズムとその実装を調べます。クラスタリングは、データポイントを類似性に基づいてクラスタにグループ化する非監督学習の一種です。K-Means クラスタリングは、クラスタリングにおける人気のあるアルゴリズムであり、画像処理、生物情報学、市場調査など、様々な分野で広く使用されています。
VM のヒント
VM の起動が完了したら、左上隅をクリックして ノートブック タブに切り替えて、Jupyter Notebook を使った練習にアクセスします。
Jupyter Notebook の読み込みには数秒待つことがあります。Jupyter Notebook の制限により、操作の検証は自動化できません。
学習中に問題がある場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。
ライブラリのインポート
まず、この実験に必要なライブラリをインポートする必要があります。NumPy、Matplotlib、および scikit-learn を使用します。
import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from sklearn import datasets
データの読み込み
次に、機械学習において人気のある iris データセットを読み込みます。このデータセットには、さまざまな種類のアヤメの花の特徴に関する情報が含まれています。このデータセットを使って、K-Means クラスタリングアルゴリズムを示します。
iris = datasets.load_iris()
X = iris.data
y = iris.target
データの可視化
K-Means クラスタリングアルゴリズムを適用する前に、まずデータを可視化して、それをよりよく理解しましょう。データを可視化するために 3D 散布図を使用します。
fig = plt.figure(figsize=(10, 8))
ax = fig.add_subplot(111, projection="3d")
ax.scatter(X[:, 0], X[:, 1], X[:, 2])
ax.set_xlabel("Sepal length")
ax.set_ylabel("Sepal width")
ax.set_zlabel("Petal length")
plt.show()
K-Means クラスタリングの適用
次に、K-Means クラスタリングアルゴリズムをデータに適用します。アルゴリズムを 3 つのクラスタで初期化し、データに適合させます。
kmeans = KMeans(n_clusters=3)
kmeans.fit(X)
クラスタの可視化
K-Means クラスタリングアルゴリズムを適用した後、形成されたクラスタを可視化しましょう。データポイントとそれぞれのクラスタを可視化するために 3D 散布図を使用します。
fig = plt.figure(figsize=(10, 8))
ax = fig.add_subplot(111, projection="3d")
ax.scatter(X[:, 0], X[:, 1], X[:, 2], c=kmeans.labels_)
ax.set_xlabel("Sepal length")
ax.set_ylabel("Sepal width")
ax.set_zlabel("Petal length")
plt.show()
クラスタリングの評価
K-Means クラスタリングアルゴリズムの性能を評価するには、慣性スコア (inertia score) を計算できます。慣性スコアは、各データポイントとその割り当てられたクラスタ中心との距離の合計を測定します。慣性スコアが低いほど、クラスタリングが良好であることを示します。
print("Inertia Score:", kmeans.inertia_)
まとめ
この実験では、K-Means クラスタリングアルゴリズムと、scikit-learn ライブラリを使った Python におけるその実装方法について学びました。アイリスデータセットを読み込み、データを可視化し、K-Means クラスタリングアルゴリズムを適用し、その性能を評価しました。クラスタリングは、データ分析に強力な手法であり、様々なアプリケーションで使用できます。