Adjusted Mutual Information
イントロダクション
クラスタリングの性能を評価する指標に、AMI (Adjusted Mutual Information)というものがある。Wikipediaに英語の記事はあったが、日本語で解説している記事を見つけられなかったのでここに日本語でまとめる。
結局のところ
結局のところ、AMIはARI(Adjusted Rand Index)と同じような補正をしている。すなわち、真のクラスタとクラスタリングにより推定されたクラスタ間の相互情報量から、ランダム予測をした時の相互情報量の期待値を差し引くような補正をしている。
相互情報量
個の要素からなる集合 に対して、この 個への分割と個への分割を考える。ここで考えているのはいわゆる堅いクラスタ、すなわち、
を満たすようなクラスタである。 このU,Vの情報はR×Cの行列Mを用いて
として表せる。要素をランダムに選択した時、クラスタの要素が選ばれる確率は
であり、分割U,Vのエントロピーは
である。二つの分割U,Vの相互情報量は
ここで、
ある分割の組U,Vが与えられている時の、相互情報量の期待値は
ただし、
これを用いて補正された相互情報量AMI(U,V)は
と表せる.
イシューの分解とストーリラインについて
競馬統計で遊ぶ.1
今回は興味があった競馬の統計量を実際に手を動かして計算するために、pythonでコードを書きはじめた、という記事です。今回実装した機能は以下の2つです。
- netkeiba.comからレース結果をスクレイピングする(csv形式で保存)
- csvから1着,2着,3着,それ以外の4通りになる確率を馬番、人気の組ごとに計算する
コードを書く際には以下の記事が参考になりました。
Pythonで競馬サイトWebスクレイピング - Qiita
競馬のデータ分析をプログラミング(スクレイピング)でやってみたお話 | ハイパー猫背
様々な解析をしたいところですが、csvのままだと処理が面倒なので、まずはSQLでデータベースを作る予定です。
今後考慮したい要素として、上から順にやっていく予定です。
- レース情報(芝/ダート、コース形、距離、馬場、天候 )
- 騎手と馬の組
- 各馬レース結果の時系列評価
- 馬の血統
- その他
最後までお読みいただきありがとうございました。