k-means(K平均法)はクラスタリング手法の一つ。
PythonではSciPyに実装されているので簡単に利用することができます。
Macではこちらの記事に書いてある方法で関連するソフトもインストールできます。
たとえば下図のように2種類の2次元正規分布からサンプリングされたデータがあるとき
k-meansを用いると下図のようにクラスタリングされます。
以下、コード。
SciPyを用いるとk-meansは21~22行目の実質2行で利用することができます。
なおサンプリングについては ここ を、kmeansについては ここ を参照。
ちなみに正規化しないと下図のようになってしまいます。
k-meansのアルゴリズムについては、鹿島先生の講義資料の概論②の14~16ページの説明なんかが分かりやすいかもしれません。
kmeans2では数値エラーがでることがあるようです。
ReplyDeletePyclusterというライブラリを試しましたがこちらも便利です。
http://stackoverflow.com/questions/1545606/python-k-means-algorithm
Great reading your blog poost
ReplyDelete