はじめに
これまでの記事では、教師あり学習(分類・回帰)を中心に学んできました。
ひとつ前の記事 主成分分析(PCA)で次元削減!データの本質を捉える方法
今回は新たなテーマ、
「教師なし学習(unsupervised learning)」に挑戦します!
教師なし学習の代表的な手法が、
クラスタリング(Clustering)です。
この記事では、
- クラスタリングとは何か?
- クラスタリングの基本的なアルゴリズム
- 実際の使われ方・注意点
についてわかりやすく解説します!
🔹 統計自主学習シリーズまとめページはこちら
▶【初心者向け】統計自主学習シリーズまとめ
クラスタリングとは?
クラスタリングとは、
似たデータ同士をグループにまとめる手法です。
ポイントは、
- ラベル(正解)が存在しない
- データ自身の特徴から、自然なまとまり(クラスタ)を見つけ出す
ことです。
イメージ
例えば、買い物客の購買データから、
- 似た購入傾向を持つグループ
- 似た好みを持つグループ
を自動的に発見することができます。
クラスタリングの主な用途
クラスタリングは実社会でも幅広く活用されています。
- マーケティング → 顧客をタイプ別に分類
- 画像処理 → 似た特徴を持つ画像をまとめる
- 医療 → 患者のタイプを自動で分ける
- ソーシャルメディア → ユーザーをグループ化
クラスタリングの代表的なアルゴリズム
クラスタリングには色々な方法がありますが、
ここでは代表的な2つを紹介します!
① k-means法(k平均法)
最も基本的なクラスタリング手法です。
- あらかじめ「クラスタの数k」を決める
- データをk個のグループに分ける
- 各クラスタの中心(重心)を計算し、データを最も近い中心に割り当てる
k-means法の特徴
✅ シンプルで計算が速い
✅ 大規模データにも適用しやすい
❗ クラスタ数を事前に決める必要がある
❗ 球状のグループしかうまく分けられない場合がある
② 階層的クラスタリング(Hierarchical Clustering)
クラスタを階層的に構築していく方法です。
- データ点を最初は全部バラバラに
- 近いデータ同士を順番にまとめていき、
木(ツリー)状にグループを形成していきます
階層的クラスタリングの特徴
✅ クラスタ数を後から決められる(ツリーをどこで切るかで調整)
✅ データ構造を可視化できる(デンドログラム)
❗ 計算コストが高く、大規模データには向かない場合も
クラスタリングのPython実装例(k-means)
ここでは、k-meansを使った簡単な例を紹介します!
from sklearn.datasets import load_iris
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
# データ読み込み
iris = load_iris()
X = iris.data
# k-meansでクラスタリング(3グループに分ける)
kmeans = KMeans(n_clusters=3, random_state=42)
labels = kmeans.fit_predict(X)
# 結果を可視化(2次元だけ使用)
plt.scatter(X[:, 0], X[:, 1], c=labels, cmap='viridis')
plt.xlabel('特徴量1')
plt.ylabel('特徴量2')
plt.title('k-meansクラスタリング結果')
plt.show()
クラスタリングの注意点
クラスタリングは便利ですが、注意も必要です。
- 必ずしも「正解」があるわけではない
- クラスタ数の設定に慎重になる必要がある
- どんな特徴をもとにグループ分けされるかをよく考える
➡️ 「データをよく理解すること」が何より大事です!
まとめ
- クラスタリングは、データから自然なグループを発見する手法
- k-means法や階層的クラスタリングが代表例
- 適切なクラスタ数や特徴選びが成功のカギ
- 教師なし学習の第一歩として、非常に重要なスキル!
✅ 次回は、クラスタリングをより実践的に使いこなすために、
「クラスタ数の決め方(エルボー法・シルエット分析)」について学んでいきましょう!
【あわせて読みたい】
🔹 次におすすめの記事
▶クラスタ数はどう決める?エルボー法とシルエット分析を初心者向けにやさしく解説
🔹 関連記事
▶「正規分布とは?現実世界と機械学習での使われ方・特徴をやさしく解説」
▶主要6モデルをやさしく解説!線形回帰・ロジスティック回帰・KNN・SVM・決定木・ランダムフォレストとは?
▶分類問題の基礎!混同行列・精度・再現率・F1スコアの正しい使い方
▶なぜ標準化・正規化でモデルの精度が上がるのか?実例と一緒に解説
🔹 統計自主学習シリーズまとめページはこちら
▶【初心者向け】統計自主学習シリーズまとめ

コメント