はじめに
この実験では、人気のある教師なし機械学習手法であるクラスタリングを学びます。クラスタリングは、ラベル付きの学習データが必要なく、データポイントの特徴や属性に基づいて類似するデータポイントをグループ化するために使用されます。様々なクラスタリングアルゴリズムがあり、それぞれに長所と短所があります。この実験では、k-means クラスタリングアルゴリズムに焦点を当てます。
VM のヒント
VM の起動が完了したら、左上隅をクリックしてノートブックタブに切り替え、Jupyter Notebook を使って練習しましょう。
時々、Jupyter Notebook が読み込み終わるまで数秒待つ必要がある場合があります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。
学習中に問題に遭遇した場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。
必要なライブラリをインポートする
始める前に、この実験で必要なライブラリをインポートしましょう。
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_blobs
from sklearn.cluster import KMeans
サンプルデータを生成する
次に、使用するサンプルデータを生成しましょう。sklearn.datasets モジュールの make_blobs 関数を使って、クラスタがある合成データセットを作成します。
## Generate sample data
X, y = make_blobs(n_samples=100, centers=4, random_state=0, cluster_std=1.0)
データを可視化する
生成したデータを散布図を使って可視化しましょう。
## Plot the data points
plt.scatter(X[:, 0], X[:, 1])
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.show()
k-means クラスタリングを実行する
次に、k-means クラスタリングアルゴリズムをデータに適用しましょう。
## Perform K-Means clustering
kmeans = KMeans(n_clusters=4)
kmeans.fit(X)
クラスタを可視化する
k-means アルゴリズムによって形成されたクラスタを可視化しましょう。
## Get the cluster labels for each data point
labels = kmeans.labels_
## Plot the data points with color-coded clusters
plt.scatter(X[:, 0], X[:, 1], c=labels)
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.show()
クラスタリングを評価する
クラスタリング結果を評価するために、クラスタの不慣性を計算できます。これは、サンプルが最も近いクラスタ中心までの二乗距離の合計を表します。
## Calculate the inertia of the clusters
inertia = kmeans.inertia_
print("Inertia:", inertia)
まとめ
この実験では、k-means クラスタリングアルゴリズムを検討しました。合成データセットを生成し、そのデータに k-means クラスタリングを実行し、結果として得られたクラスタを可視化しました。また、クラスタの不慣性を計算して、クラスタリング性能の尺度として使用しました。クラスタリングは、ラベルの付いていないデータの構造を見つけるための強力な手法であり、さまざまなドメインやデータの種類に適用できます。