本日は実装です。カーネルk平均法を実装します。言語はいつも通りPythonです。
Kernel K-meansとは?
非線形データのクラスタリング手法のです。前回紹介したカーネルトリックを用いてデータを高次元空間へと写し、k-meansを行います。このトリックを用いて非線形データを分離するのですが初期値に非常に依存し、時にうまく分離することができません。なので実際に使われているところは見たことないですね、、アルゴリズム
K-meansとほとんど同じです。- ランダムにcentroidをクラスタ数決める。
- 特徴空間において各データと各centroidからの距離を測る(総和D)
- 各データを最小の距離をもつクラスタに割り当てる
- STEP-2から繰り返す
![](https://research.miidas.jp/wp-content/uploads/2019/07/Screen-Shot-2019-07-03-at-15.00.34-1024x139.png)
はカーネル
は特徴空間での各クラスタの中心
は各クラスタ
は各クラスタの大きさ
![](https://research.miidas.jp/wp-content/uploads/2019/07/Screen-Shot-2019-07-03-at-15.30.49-1024x105.png)
![Rendered by QuickLaTeX.com m_c](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-fa4bf96930f4bffb3bd429237e0de921_l3.png)