個人ページ
N班ゼミ
ゼミより抜粋
k-means++を使ってみた †
階層的クラスタリングより結果としては良く見える。
クラスタ数はエイヤで決めている。
x-means法という手法がある。
未調査
↑
研究のまとめ方について †
どのような結論へ導くか?
その方向に向かって論文を書く必要がある。
せめてサジェストしたい。
評価をどうするか?
この方法でサジェストすると、現状のバラバラに決めている状況と比較して、より良くなっていることを示す。
専攻ゼミナールが9/1
8月中に投稿可能にする。
これから新しいことはできないだろう。
これまでにやったことをまとめる。
まとめ †
- 1月~5月まで情報知識学会に向け研究
- 5月~7月クラスタ分析を行った
- 前回ではk-means++を使ってみて、階層クラスタリングより結果が良かった
- クラスタでは一つ項目名しかないというクラスタに対してやはりあやしいか?
- 階層クラスタリングとk-means++(x-means?)両方もクラスタリングの結果で学習すれば、比較していかがでしょうか?
- この実験結果で投稿する?
- 8月末まであと一ヶ月半があるので、なんとかしたいな?
k-means++について †
クラスタ数を推定する方法 †
x-means法
- x-meansとは
- x-meansは、k-meansのクラスター数kを自動推定しつつクラスタリングしてくれる手法です。k-meansの逐次繰り返しとBIC(Bayesian information criterion)による分割停止基準を用いて最適なクラスター数を決定します。 BICは重心の近くにガウス分布している仮定してBICを計算します。
- 詳細:x-meansの論文。
- Pythonでx-means法を実装した
- 特徴:クラスタ数を与えていなくても、上手くクラスタリングができる
- 肝心のコード:https://gist.github.com/yasaichi/254a060eff56a3b3b858
- 上記のソースコードを実行すると、エラーが出る。
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-9-59ceea26960f> in <module>()
92
93 # クラスタリングの実行
---> 94 x_means = XMeans(random_state = 1).fit(np.c_[x,y])
95
96 # 結果をプロット
2 frames
<ipython-input-9-59ceea26960f> in build(cls, X, k_means, index)
63 @classmethod
64 def build(cls, X, k_means, index = None):
---> 65 if index == None:
66 index = np.array(range(0, X.shape[0]))
67 labels = range(0, k_means.get_params()["n_clusters"])
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()