K-means

公開日:2025/05/30

K-means

データをk個のクラスタに分割する代表的な非教師あり学習手法。各データポイントを最も近いクラスタ中心に割り当て、クラスタ内分散を最小化する分割型クラスタリング。

アルゴリズムの手順:
1. クラスタ数kを事前に指定
2. k個のクラスタ中心を初期化
3. 各データポイントを最も近い中心に割り当て
4. 各クラスタの中心を重心で更新
5. 収束するまでステップ3-4を反復

実装パラメータ:
・n_clusters:クラスタ数(事前に指定必要)
・init:初期化方法('k-means++'推奨)
・max_iter:最大反復回数
・n_init:異なる初期値での実行回数
・random_state:再現性確保のシード

最適クラスタ数の決定:
・エルボー法:inertia_(クラスタ内平方和)をプロット
・シルエット分析:クラスタ内結合度と分離度を評価
・ギャップ統計量:理論的な基準との比較

実務での活用例:
・顧客セグメンテーション(RFM分析など)
・商品カテゴリ分類
・画像セグメンテーション
・マーケットバスケット分析
・異常検知の前処理

メリット・デメリット:
メリット:計算が高速、理解しやすい、大規模データに適用可能
デメリット:クラスタ数を事前指定、球状クラスタを仮定、外れ値に敏感

改善手法:
・K-means++による初期化改善
・ミニバッチK-meansによる高速化
・密度ベース手法(DBSCAN)との比較検討