初コンペの思い出
どうも、tacoriceです。
私の初めてのデータ分析コンペはSIGNATEの「ひろしまQuest2020:プロ野球データを用いた配球予測」をするコンペです。初めてのコンペでしたが、健闘した結果、ブロンズメダルを頂けたのがうれしかったので、今更ですが記事にします。
コンペ概要
「球種予測部門」「コース予測部門」「アイデア部門」の3つの部門が用意されていました。
「球種予測、コース予測では、プロ野球データというリアルなデータに触れることでモデリング技術向上、アイデアレポートでは、データサイエンティストとして重要である"データをどのように解釈するのか"を相手に伝える力の向上を目標としています。」
SIGNATE HPより
私はこの内、球種予測部門に参加してみました。
課題 投手の投げる球の球種予測
・投球毎と選手毎の蓄積データを元に「どんな球種を投げるのか」を予測する。
提供データ 学習:2017年プロ野球データ評価:2018-19年プロ野球データ
評価方法 予測精度による定量評価
・評価関数「multi-class logloss」(小さいほうが精度が良い)
1日の応募回数の上限は3回でした。
ソリューション概要
前処理
・欠損のあるデータ削除(平均値や中央値で補完したが改善しなかった)
・ワンホットエンコーディング
・標準化
特徴量エンジニアリング
・SelectPercentile
・feature_importances(Random_forest)
・論文やSlideShare等でのドメイン知識
モデル
sklearnを用いて
・lightGBM
・XGBoost
・MLPClassifier
・ロジスティック回帰
・Randomforest
・決定木
・K近傍法
を試しました。
この内、精度の良かったlightGBM、MLP、xgbを使用しました。また、汎化性能をあげるために、ロジスティック回帰も使用してアンサンブルを行いました。
xgbはlightGBMと手法が似ており相関が大きいので、あまりアンサンブルする意味はないかもしれませんが、lightGBMだけでは心配だったので選びました。
MLPは多層パーセプトロンですが、活性化関数はReLuを用いているのでいわゆるニューラルネットワーク(NN)です。lightGBMは決定木を大量に作成して多数決をとる勾配ブースティング系の手法なので、NNと手法が異なります。故にlightGBMとのアンサンブルが有効であると判断しました。
最近のテーブルコンペでは、lightGBMとMLPのアンサンブル学習が流行りみたいです。
ロジスティック回帰も他のモデルと手法が異なるため用いました。
クロスバリデーション
・StratifiedKFold+GridSearchCV
最終結果
暫定評価:1.3303654
最終評価:1.4730368
暫定評価が6位で金圏だったので、かなりのシェイクダウンをくらってしまいました。
が、一応最終評価は銅圏だったので、初メダル獲得です。
おわりに
はじめてのコンペだったので、初めは提出するだけでも大変でした。
しかし、一度提出できてしまえば、あとはあの手この手でスコアを上げるのがとても楽しかったです。
メダルをもらえるだけで達成感があり、次への励みになりました。
一方で悔しさもあり、もっと頑張らねばとも思わせてくれました。
コンペから得られる学びは、とても大きいです。
これはハマらない方が不健全です(笑)