Kaggle 初心者が Home Credit の問題を取り組むために実施したこと
https://gyazo.com/06b667947c138a377369558f8fd27549
はじめに
Kaggle 自体は過去にいくつか問題に取り組みましたが、今回の問題は今までの中で最もデータの数が多く、どうして良いか分からない状態になってしまいました。
そのため、振り返りをかねて、参考にした記事などを記載したいと思います。
EDA のためにデータの整理
人気記事である、こちらの記事を参考に、 EDA (探索的データ解析)を実施しました。
なお、日本語に翻訳してくださった方もいらっしゃるそうで、こちらを参考にしても良いかと思います。
特に「何をして良いか分からない」状態の時は、こういった地道にデータの特性を可視化していくことが重要だと分かりました。
トップランカーの Karnel を真似してみる
それでもどうして良いか分からない状態だったので、ヒントを探してググっていたところ、下記の記事を見つけました。
Kaggle のトップランカーの Karnel は公開されているので、そちらを参考にすると良いという発想を得ました。
今回の問題でも以下のリンクから確認することが可能です。
こちらの記事でも紹介されていた、 LightGBM について興味がでたので調べてみることにしました。
LightGBM
Microsoft がリリースした、決定木、勾配ブースティング、モデルのアンサンブルを実施する機械学習のフレームワークのことです。
論文もみることができるようです。
使用すること自体はかなり簡単で、データセットを食わせればそれっぽい結果がでます。
これにより、要素の重要度を可視化することができたので、以降進めるに当たって大いに参考になりました。
こちらの記事が分かりやすく、そもそもの題材が興味深かったです。
(余談ですが、メッシは今でも私の中でスーパーエースです。)
Google Colaboratory や Kaggle の Notebook を使うのであれば、そのまま LightGBM を使用できるようですが、自分で環境構築をしている場合は、 CMake をインストールした上でコードをコンパイルしないといけないので少し面倒かもしれません。
手前味噌ですが、私の Docker イメージの方は使用できる状態にしたので参考にしてください。
さいごに
今回の問題は大変でしたが、上記までの通り、多くのことを学ぶことができ、また多くのことを分かっていなかったことも気付きました。
個人的には、 Pandas の agg メソッド や大量のデータセットをリレーションする方法は、「こういうことやれたらなぁ」と思っていたところだったので、今度色々試して記事にしたいと思います。