9章のK-meansをPythonで実装してみます。データx_nをあらかじめ指定したK個のクラスタにわけることを考えます。各クラスタの重心をμ_kとします。K個のデータ平均(means)=重心があるからK-meansですね。さらに、2値指示変数r_nkを用意します。これは、データ点x_nがk番目のクラスタに含まれるとき1、それ以外は0になります。各データx_nはただ1つのクラスタに属するという仮定があるためr[n]のK次元ベクトルは1つだけ1であとは0になります。このとき、最小化したい目的関数Jは(9.1)で与えられます。 上の式は各データ点x_nからその点が所属するクラスタの重心までの距離を最小化することを意味しています。ここでの目的は、Jを最小にするr_nkとμ_kを求めることです。r_nkとμ_kの2つともわからないので、r_nkとμ_kをそれぞれ最適化する2つのステップを交互に何度
![K-meansクラスタリング - 人工知能に関する断創録](https://cdn-ak-scissors.b.st-hatena.com/image/square/6804c10cbf831aad7e5eaa508b28aea91f96973b/height=288;version=1;width=512/http%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fa%2Faidiary%2F20100515%2F20100515104056.png)