混合ガウスでiris datasetをクラスタリング
Rで学ぶクラスタ解析でやってることを何故かpythonでやってみたよという話.
コードはgistに置いてみた.gistyが何故か入れれなくてしょぼーん.混合ガウスはPRML9章から.
純度とかエントロピー
混合ガウス
irisのデータはここから取得.そのままだとちょっと微妙な気もしたので適当にcut
$ cut --delimiter=, -f1-4 iris.data | sed -e 's/,/ /g' > iris.input $ cut --delimiter=, -f5 iris.data | cut -c6- > iris.ans
REPLで適当に試す
>>> import scipy as sp >>> import mydefs >>> from gmm import gmm >>> x = sp.loadtxt("data/iris.input") >>> ans = gmm(x, 3) >>> cls = ans['classification'] >>> goldans = sp.loadtxt("data/iris.ans", dtype="|S5") >>> mydefs.myeval(cls, goldans) Entropy: 0.10167363274 Purity: 0.966666666667
初期値に応じて結果が結構変わる上,たまに潰れて発散する ^^;