Kaggleの"30 Days of ML"をやった
せっかくKaggle内に学習コンテンツがあるんだしと思ってやってみたらかなりよかった。教材のレベル感が自分にあってたのかも知れない。
Day1~7はPythonの学習だったのでスルーしてDay8~14をやった。Day15~30は今はもうやれないコンテンツなので30Daysといいつつも実際にはDay8~14の7日間分。
基本的にはまず概念・コードの説明がチュートリアルとして先にあって、その後にあるエクササイズで自分でも少しコードを書いてみるという形式。実際のコンペ(住宅価格予想のやつ)のデータセットを使っていて、新しい概念や手法がでてくるたびに予測精度が少しずつ上がっていくのを体感できる仕組みになっていた。逆に何かを導入しても精度が向上しないパターンもあって、そういう場合はなぜ改善しないのかの解説がある。すごくよくできているコンテンツだと思った。
内容としてはざっくりこんな感じ。
- 決定木について
- Data Exploration
- 平均絶対誤差によるモデルの検証
- 学習データとテストデータの分割
- underfittingとoverfitting
- 決定木の深さ
- ランダムフォレスト
- 欠損値の処理
-
カテゴリ変数
- Ordinal Encoding
- One-Hot Encoding
- パイプライン
- 交差検証
- 勾配ブースティング(XGBoost)
-
data leakage
- target leakage
- train-test contamination
チュートリアルを読んでる時はfmfmなるほどという感じなんだけど、その後のエクササイズで実際にコードを書こうとするとめちゃくちゃ手が止まる。numpyとかpandasの使い方が全然わかってない。やってればそのうち覚えるかとは思いつつも、あまりにつまると効率悪いので先にnumpy100本ノックとかpandas100本ノックとかやってもいいかもしれない。
とりあえず「30 Days of ML」が終わったからなんか簡単そうなコンペやってみようかと色々みてたんだけど、気づいたら Learn Time Series Tutorials をはじめていた。
まあコンペやる前にサクッと終わらせるかと思ったらこれが思った以上にヘビーでまいった。後で知ったけど時系列データの解析って大きいトピックなんだなあ。そりゃそうだよなって感じだけど。でも時系列データが扱えるようになると、現実のいろんなデータセットや問題を扱えるようになりそうなので、グッと腹に力を込めてやりきるぞ。
はやく実際のコンペに参加してKaggle Expertになりたい。