2007 IEEE ICDM DMC task1 result
- 6. Example
Access Point 1 2 3 4 5 6
Label A 0 0 0 10 0 10
A?B? 0 0 0 20 0 5
Label B 5 5 0 20 0 0
4 1
A B
2
6 ??
0.5-NormだとBよりもAに近い
→感覚に合致
2-NormだとBのほうが近い
→NG
- 7. 結果
• 1623/2137(75.96%) with K=1, Norm=1/3
• 1575/2137(73.70%) with K=3, Norm=1/3
• 1469/2137(68.74%) with K=1, Norm=1/2
• …微妙?
• 信号Vector上で各ラベルのデータが超球を形成し
ていればK-meansは効果を発揮するはずだが、今
回はノルムを振っても良い結果は出ず
• ラベル重心を計算するときに、ラベルが多い訓練
データとそうでないデータでベクトルの要素数がば
らついてしまうのも悪影響?
- 8. 2:最尤伝播
• IBMチームの手法をまねっこ
– 最尤のラベル有りデータから伝搬させて学習
– テストデータについてはi番目データのcっぽさ
(尤度関数)fi(c)を計算し,最もfが大きくなるcを
正解とする
• 簡単のため,ひとまず信号のみでSimilarityを計算
- 12. Example
ステップ k-3 k-2 k-1 k
10 10 194 ?
0.6 0.007 0.3
推定値
尤度f
fk(194) += 0.5
fが小さいので
加算しない
fk(10) += 0.1
- 13. 改善2/3: Graph Based Weighting
• トレーニング/テストデータは同じ地図上を動く
• ある場所cに居るとき,次のステップで移動可能な
場所は限られている
• 学習中に推定ラベル遷移から部屋の構造を推定
– ノード1..247を配置
– 尤度がしきい値(0.1)を超えたペアの間に
branchを張っていく
• 学習中に間違った推定をすると正答率を悪化させ
る可能性
- 14. Example
ラベル 10 10 194 4 20 2
尤度 0.4 0.2 0.1 0.5 0.8 0.003
194
20
10
尤度が低いので
枝を張らない
2
4
- 16. Example
推定 10 10 10 10 5 5 109 5 5
尤度 0.3 0.4 0.5 0.5 0.7 0.4 0.01 0.4 0.9
これ以降はf(10) を0.4倍
109は尤度が小さいので
f(5)はペナルティなし
- 18. 3:bayonを使う
• bayon:mixiのエンジニアがリリースした高速なクラ
スタリングツール
• Repeated Bisection法
– 以下の手順でクラスタの2分割を繰り返していく
• 1.最もまとまりが悪いクラスタAを選択し,そ
の中のランダムな2要素を代表としたクラス
タB,Cを作成
• 2.Aの各要素を代表との類似度に沿ってB,C
どちらかに割り振る
• 3.B,C間で要素の移動を行って集合を洗練
- 19. 準備
• 主に教師なしクラスタリングに使うツールだが、ラ
ベル中心ベクトルを入力することで教師ありのクラ
スタリングもできる
– この場合単に類似度評価であってR-Bのような
イタレーションはやっていない気がする(良く分
かってない…)
• ラベルありデータの信号強度のみを用いて推定
• とてもお手軽だった
– インストール5分
– 入力データフォーマットの整形1分
– クラスタリング2秒
- 22. 手法
• 先のGraph Based Weightingが再利用できる
– 今度はラベル無しデータではなく,座標セット
(map_coordinates.txt)を用いてグラフを生成
– グラフの重みを強め、実質的に1ステップ前の
推定ラベル自身とその隣にしか移動できない
ように
• 一旦間違った方向に入ると泥沼に入る可
能性
• 尤度関数の情報を用いて重みを都度調整
– 1ステップ前の尤度が弱い場合は尤度
が強いステップまで巻き戻り、その近傍
に対しても重みをつけてやる
- 23. Example
ラベル 10 10 210 184 120
尤度 0.8 0.7 0.001 0.4 0.05
210
10 10
10 184
10 120
10
- 25. まとめ
手法 結果
K-means 75.96%
ラベル伝搬 82.50%
bayon 60.4%
地図情報利用 85.73%
・いろいろ試行錯誤の結果、とりあえずIBMの
結果は超えるものが出た
・使っていない情報は何か考えて実装するプロセスを
楽しんでやれた
・bayonもっと使いたい