tacoriceの日記

間違い等あれば指摘して頂けたら嬉しいです。

初コンペの思い出

どうも、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位で金圏だったので、かなりのシェイクダウンをくらってしまいました。

が、一応最終評価は銅圏だったので、初メダル獲得です。

 

おわりに

はじめてのコンペだったので、初めは提出するだけでも大変でした。

しかし、一度提出できてしまえば、あとはあの手この手でスコアを上げるのがとても楽しかったです。

 

メダルをもらえるだけで達成感があり、次への励みになりました。

一方で悔しさもあり、もっと頑張らねばとも思わせてくれました。

コンペから得られる学びは、とても大きいです。

 

これはハマらない方が不健全です(笑)