機械学習Courseraの機械学習コースでk平均法を学んだので、理解を深めるために実装してみた。日記にするほど難しくはないが、メモということで。メインは次のGetKMeans_withCost()で、tryNumの数だけk平均法を試して、コスト(最寄りのセントロイドまでの距離の合計)が最小になった結果を返している。クラスタ数kとMatrix型の変数x。xは行が1サンプル、列が特徴を表す。xからk個ランダムに選び出し、この位置をセントロイドの初期値にするそれぞれのxに、最も近いセントロイドを割り当てるセントロイドの位置を、割り当てられているxの平均値にアップデートを繰り返しているだけ。セントロイドの位置が変わらなくなるまでループする。minCost);}こちらはkの値をいろいろ試してみるコード。kの候補値(Ks[])ごとの結果を返す。うまい具合にエルボー(これ以上増やしてもあまりコストが下がらないようなkの値)があれば、それを使うのが良いらしい。参加日記2017年最後のプロコン。参加日記78位/10487人。参加日記262位/11880人。Easy問は省略する。R1は時間的に参加できるかどうか微妙だ。参加日記0完でレート微増だった。月別アーカイブはてなブログをはじめよう!yambe2002さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。