5.3.1 教師なし学習ロードマップ:ラベルなしで構造を見つける
教師なし学習は、データにラベルがないところから始まります。モデルは最終的な真実を教えるのではなく、あり得る構造を見つける手助けをします。
まず構造マップを見る


| やりたいこと | まず使うもの |
|---|---|
| 自然なグループを見つける | クラスタリング |
| 高次元データを圧縮する | 次元削減 |
| 普通ではない点を見つける | 異常検知 |
重要なのは「ラベルが正しいか」ではなく、「この構造に証拠と意味があるか」です。
クラスタリング baseline を1つ動かす
unsupervised_first_loop.py を作り、scikit-learn をインストールしてから実行します。
from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs
X, _ = make_blobs(n_samples=30, centers=3, random_state=7, cluster_std=0.8)
model = KMeans(n_clusters=3, random_state=7, n_init="auto")
labels = model.fit_predict(X)
print("cluster_count:", len(set(labels)))
print("first_five_labels:", labels[:5].tolist())
print("inertia:", round(model.inertia_, 2))
出力:
cluster_count: 3
first_five_labels: [2, 0, 0, 1, 0]
inertia: 43.44
クラスタリングが返すのはグループ番号であり、人間にとっての意味ではありません。グラフ、特徴量の要約、ドメイン解釈が必要です。
この順番で学ぶ
| 順番 | 読む | 練習すること |
|---|---|---|
| 1 | 5.3.2 クラスタリング | K-Means、クラスタ解釈、悪いクラスタ数選択 |
| 2 | 5.3.3 次元削減 | PCA、可視化、圧縮 |
| 3 | 5.3.4 異常検知 | 外れ値、しきい値、アラートの証拠 |
合格ライン
探している構造を説明し、教師なしモデルを1つ動かし、出力を絶対的な真実として扱わず慎重な解釈を書ければ合格です。