k-Meansの課題
- クラスタ間で微妙な位置関係にあるデータについて特定クラスタに分類された際の不確実の度合いを知ることができない。
- 例えば51%の確率でクラスタAであり、49%の確率でクラスタBかもしれないがそれはモデルからは判明しない。
クラスタリングの精度を知るための一つの方法として、クラスタの中心から円を描き、その円に入らないデータはクラスタから除外する
- この方法ではクラスタの形が円であることが前提である。
- 楕円等になった場合には、正しくクラスタリングできない
PCAにより軸を変える方法が考えられるが、しかしPCAによりデータが円状になることは保証されていない。
k-meansの問題は2つである。
- クラスタの形状は柔軟性がない
- 確率によるデータのクラスタへの割り当てができない
この問題を解決する方法としては2つある。
- クラスタの形状に楕円を用いる
- データについてすべてのクラスタ中心からの距離を測定する
ガウス分布と混合ガウス分布
ガウス分布とは正規分布のことである。正規分布は統計で最も基本となる確率分布となり、中心となる平均と広がりである分散となる2つのパラメータをもつ曲線である。
混合ガウス分布とは平均と分散が異なる複数のガウス分布を組み合わせた分布となる。データの散らばり具合、その確率を混合ガウス分布で表現する。複数の正規分布を用いるので正規分布より柔軟な表現が可能になる。
混合ガウスモデル
混合ガウスモデルの学習では、「データはすでに存在する確率分布=混合ガウス分布により生成したとみなす」を前提にする。その前提に立ち、データから混合ガウス分布を求める。
ガウスモデルは平均と分散をパラメータとする。分散を変えることで楕円形のクラスタを生成することが可能になる。
混合ガウスモデルの求め方は以下のようになる。
- 各クラスタごとに初期のガウス分布を分布を生成する(初期パラメータを平均と分散に設定する)
- 各データについてそれぞれのガウス分布の重みを計算する
- 得られた重みによりガウス分布を更新する。
- ガウス分布の変化が十分小さくなるまで繰り返す。
実装
covariance_typeによるクラスタ形状の指定
デフォルト値は”diag”。これは楕円であるが軸は軸に依存する。”spherial”ではクラスタの形状は球形となり、k-meansと似た結果を返す。”full”は最も柔軟な楕円を返す。ただし計算量は多くなる。
n_componentsの大きさ
n_componentsによりデータポイントに合わせた柔軟なクラスタを得ることができる。ただし大きすぎても意味がなくなる。AICおよびBICにより最適なn_componentsを取得する