モデルベースクラスタリング徹底解説:GMMとEM・BIC/AIC/ICLで最適なクラスタ数を選ぶ実務ガイド

モデルベースクラスタリングとは

モデルベースクラスタリング(model-based clustering)は、「データがいくつかの確率分布(成分分布)の混合によって生成された」と仮定し、その混合分布のパラメータを推定することでデータをクラスタ分けするアプローチです。伝統的な距離・密度に基づくクラスタリング(k-means、階層型など)が直接データ点間の類似性に依存するのに対し、モデルベースでは観測データの生成過程を明示的にモデル化するため、統計的検定や情報量基準に基づくモデル選択が可能になります。

基本的な考え方(有限混合モデル)

もっとも一般的な形式は有限混合モデル(finite mixture model)です。観測ベクトル x が K 個の成分から来ると仮定すると、確率密度は次のように書けます。

p(x) = Σ_{k=1}^K π_k f_k(x | θ_k)

  • π_k:成分 k の混合比(0 ≤ π_k ≤ 1, Σ π_k = 1)
  • f_k(· | θ_k):成分 k の確率密度(例:多変量ガウス、ポアソン、カテコリカルなど)
  • θ_k:成分パラメータ(平均・共分散行列など)

最もポピュラーなのはガウス混合モデル(GMM)。ガウス混合では各 f_k が多変量正規分布となり、クラスタは「平均と共分散で特徴づけられる楕円形の領域」として表現されます。

パラメータ推定:期待値最大化法(EMアルゴリズム)

混合モデルのパラメータ推定には EM(Expectation–Maximization)アルゴリズムが広く使われます。EM は観測データと潜在変数(各点がどの成分から来たかのラベル)を扱う反復法で、以下の2段階を繰り返します。

  • Eステップ:現在のパラメータを用いて各データ点が成分 k に属する事後確率(responsibility)を計算する。
  • Mステップ:Eで得た事後確率を用いて混合比や成分パラメータを最大化(更新)する。

EM は収束性が保証されている(対数尤度を単調増加させる)が、局所最適解に陥りやすい点や、初期値に依存する点に注意が必要です(初期化には k-means や階層クラスタリング、ランダムなどを用いる)。

モデル選択:クラスタ数とモデル構造の決定

モデルベースクラスタリングの利点は、クラスタ数 K や成分の共分散構造(等方、対角、フルなど)を情報量基準で比較できる点です。代表的な基準は次の通りです。

  • BIC(Bayesian Information Criterion): モデルの対数尤度と自由度を考慮。混合モデルではクラスタ数選択に有効で、過剰適合を抑える傾向がある。Schwarz (1978) に由来。
  • AIC(Akaike Information Criterion): 予測誤差の観点でモデルを評価。AIC は BIC よりも複雑なモデルを選びやすい。
  • ICL(Integrated Completed Likelihood): BIC をベースにクラス割当の確実性(エントロピー)を考慮。クラスタの分離が重視される場合に有用。

通常は複数の K を試して BIC(または AIC、ICL)のプロットを比較し、最適な K を選びます。

実務上の注意点と課題

  • 初期値依存性:EM は局所解に陥りうるため、複数の初期化を試し最良解を選ぶべきです。
  • 共分散行列の特異化:データ次元が高い場合、共分散行列が特異になりやすい。対策として対角共分散や正則化(小さな値を対角に足す)を用います。
  • ラベルスイッチング:確率モデルでは成分ラベルの交換が同値解を生むため、事後推定の解釈(特にベイズ推定での MCMC)に注意が必要です。
  • 識別性(identifiability):混合モデルは全てのパラメータが一意に推定できるとは限らない。モデルの設定とデータ量に依存します。
  • 分布仕様ミス:成分分布の仮定が実際のデータに合わないと、誤ったクラスタが生まれやすい。例えば非ガウス形状のクラスタにガウス混合を当てはめると多成分に分解されることがあります。

拡張と関連手法

モデルベースクラスタリングは多くの拡張を持ちます。

  • 離散データ用の混合(カテゴリー型変数の潜在クラス解析 / latent class analysis)
  • 時系列データ:隠れマルコフモデル(HMM)は時間依存性を持つ混合モデルと見なせます。
  • 共変量を取り入れる混合回帰モデル(mixture of regressions):説明変数に応じて異なる回帰モデルが混在する場合に有効。
  • ベイズ的混合モデル:混合比やパラメータに事前分布を置き、MCMC や変分ベイズで推定。ベイズ的階層化や事前知識の導入が可能です。
  • 非パラメトリック(無限混合):ディリクレ過程混合モデル(Dirichlet Process Mixture Model, DPMM)は事前に K を固定せず、データから成分数を自動推定します。

可視化と診断

モデルベースクラスタリングの診断には以下が有用です。

  • BIC/AIC の変化をプロットしてモデル選択の妥当性を確認する。
  • 事後確率(responsibility)のヒートマップや箱ひげ図でクラスタ割当の確実性を確認する。低確率が多いクラスタは不安定。
  • 主成分分析(PCA)や t-SNE、UMAP による低次元化と、そこでのクラスタラベルの重ね合わせで分離状況を視覚化する。
  • 残差や尤度の評価、クロスバリデーション(予測性能に基づく評価)も併用する。

実務的なワークフロー(推奨)

モデルベースクラスタリングを実務で使う際の基本的な手順は次のとおりです。

  • 前処理:外れ値処理、欠損値対応、必要に応じた標準化/正規化。
  • モデルファミリーの選定:連続データなら GMM、カテゴリカルなら潜在クラス解析など。
  • 初期化戦略:複数の初期値(k-means、ランダム、階層クラスタリング)で複数回フィッティング。
  • 候補 K の範囲でモデルを推定し、BIC/AIC/ICL で比較。
  • 選択モデルの診断:事後確率、PCA 等で可視化、必要ならモデル修正(共分散構造の変更、変数選択等)。
  • 解釈・運用:各クラスタの特徴(平均、分散、代表的な観測)をレポート化し、業務に組み込む。

代表的な応用例

  • 顧客セグメンテーション:購買履歴や行動データを元にセグメント化しマーケティング戦略へ反映。
  • 異常検知:正常分布群から外れる観測を別成分として扱うことで異常検知に応用。
  • バイオインフォマティクス:遺伝子発現パターンのクラスタリングや細胞タイプ同定。
  • 画像解析:ピクセルの色や特徴量を混合モデルでモデリングして領域分割(セグメンテーション)。

主要なソフトウェア・ライブラリ

実装面では多くのライブラリが利用可能です。代表的なものを挙げます。

  • R:
    • mclust(Fraley & Raftery): ガウス混合モデルの定番。BIC によるモデル選択や共分散構造の検討が可能。https://cran.r-project.org/package=mclust
    • flexmix: 混合回帰や他の分布族に対応。https://cran.r-project.org/package=flexmix
    • mixtools: 各種混合モデルのツールキット。https://cran.r-project.org/package=mixtools
  • Python:
    • scikit-learn の GaussianMixture / BayesianGaussianMixture: EM と変分ベイズの実装。https://scikit-learn.org/stable/modules/mixture.html
    • PyMC / Stan / NumPyro 等: ベイズ混合モデルを構築・推定可能。

限界と落とし穴

  • 分布の仮定違反:成分分布のミスマッチは誤ったクラスタリングにつながる。
  • 次元の呪い:高次元データでは共分散推定が不安定になるため変数選択や次元削減が必要。
  • 計算コスト:大規模データや複雑モデル(ベイズ、DPMM)は計算負荷が高い。
  • 解釈性:確率モデルは数学的に整備される一方で、実務担当者にとって直感的でない場合があるため、解釈用の可視化が重要。

まとめ

モデルベースクラスタリングは、クラスタ数やモデル構造の比較が統計的に可能であり、確率論的な不確実性も明示できる強力な手法です。一方で、分布仮定や初期化、共分散推定など実務的な難しさもあり、適用には注意が必要です。データの性質をよく理解し、情報量基準や可視化を併用して慎重にモデルを選択・評価することが成功の鍵となります。

参考文献