"Psychopathy Prediction Based on Twitter Usage"で1位になりました

6月の終わりに終了したので既に4ヶ月以上前の話だが、kaggleで開催されていたデータサイエンスのコンペティションで1位になった。

このコンペティションはその名のとおり、twitterの使い方からそのユーザーの"Psychopathy"を予測するというものである。もう一つの Personality Prediction Based on Twitter Stream - Kaggle ではその他の"Personality"の予測を行っていた。

問題は、その予測対象の"Psychopathy"や"Personality"とはいったい何なのかということだが、正直に言って正しく説明できるほど理解できていないため、詳細は以下の記事とそこからリンクされている論文ドラフト*1を参照していただきたい。記事に書かれているが、この論文はICMLA 2012で発表されるそうだ。

以下は、このコンペティションについて書かれたブログやニュース記事である*2

実際の予測モデルについては、先述した論文ドラフトにも書かれている*3が、gradient boosted treeをbaggingして用いた。具体的には、Random Forestのようにサンプルと特徴量を全体からランダムに一定の割合選択し、Rのgbmパッケージを用いてgradient boosted treeを複数作成、それらの予測値を平均して最終的な予測値とした。主な参考文献は以下。

モデルと並んで重要なのは特徴量(素性)だが、こちらは与えられたデータセットに含まられているものを全て用いており、作成や選択などについて特別な前処理は行わず、学習過程で何を用いるかはモデルに任せた。

このように比較的シンプルな手法を用いたため*4、1位になったのは手法が優れていたというよりも、小さめのコンペティションで競争率が高くなかったことと、以下の記事に書かれているように上位陣が過学習を起こしていたことが大きな原因であろう。

このようにあまり複雑なことはしていないため必要ないとは思うが、今回のコンペティションへの参加は完全にプライベートな時間に行っており、私が所属する組織や業務上知りえた知識は用いていないことを念のため記しておく。これについては所属する組織の承認も得ている*5

このコンペティションで1位になった直後はkaggleのユーザーランキングでも10位以内に入っていたのだが、しばらく放置しているうちにずいぶんと落ちてしまった。時間があればまたコンペティションには参加したいが、業務の方でやりたいことorやるべきことが多いということと、kaggleでコンペティションの開催が閑散期に入ってしまったということから、次の参加はいつになるのかまだ未定。

*1:ACKNOWLEDGEMENTに記述されている所属はなぜか間違っている。

*2:以下の記事でも私の職種に関する記述がなぜか間違っている。

*3:V. MACHINE LEARNING RESULTS

*4:この手のコンペティションでは素性やモデルの種類を変えてモデルを複数作成しそれらをstackingするのが定番であり、もう一つの"Personality"の方でもそうだった。

*5:上司や承認者の皆さんが非常に理解のある方たちで助かった。奨励もしていただいた。