Kaggleで勝つデータ分析の技術 | ナナとトモのブログ

ナナとトモのブログ

最近は書評メインですがナナ(ダックスフント)のかわいさを世界に広めるブログです。

Kaggle が一番有名ですが、世の中には Kaggle に代表されるデータ分析コンペが

あります。分析対象となるデータが公開されており、参加者はテストデータを最も

うまく説明できる「モデル」を作ることが目標となります。

 

お遊びのようなデータも多いですが、商品の購買予測や商品推薦といった、実際の

事業に関わるデータも公開されていることがあり、上位の参加者には賞品・賞金が

贈られることもあるようです。自分もデータをニューラルネットワークで分析して

いる一員なので、参考にできる技術があればと思ってこの本を読んでみました。

 

Kaggle では xgboost を使うのが主流でニューラルネットワークはあまり使わない

というのがまず驚きでしたが

・よい特徴量を作る

・正しいバリデーションを行なって過学習を防ぐ

・全然違うモデルを複数組み合わせてアンサンブルを行なう

といったあたりは、ニューラルネットワークでも使えそうな感じがしました。

 

特徴量は、ニューラルネットワークでは「データがたくさんあれば勝手に学習して

くれるだろ」みたいなノリがありますが、目的変数に的確に効く特徴量を用意して

やる方が性能は上がるようです。他に面白いと思った技術は

・分布を正規分布に近づける手法 (Box-Cox 変換、Yeo-Johnson 変換)

・分布を強制的に正規分布にする手法 (RankGauss)

・テストデータの情報を取り込む手法 (target encoding、疑似ラベル)

  ただしそのまま取り込むとリークになるので注意

などがあります。

 

Kaggle はそのコンペの問題でとにかく高い性能が出ればいいので理論的な深みは

追い求めづらい気がしますが、モデルの学習→評価→調整→…というループを多数

回すのは普通のニューラルネットワークでの研究でも同じなので、環境整備という

面でも参考にしたいと思います。