周回遅れでIT業界デビューしたエンジニアのブログ

就職氷河期にモロにぶち当たり、人生で混迷を極めた末にIT業界に安寧を見出そうとしているアラフォーのお勉強日記です。

kaggleぐるぐる(3) 現在0.78947。titanicの研究

現在0.78947

f:id:sionff:20171014173135p:plain

10/14現在、スコアは0.78947。
2828位/8603チーム参加まで来ました。上位33%といったところ。

↓コードはこんな感じ。
github.com


ここからさらに上を目指したい!

先輩の手法に学ぼう

ものすごく参考になるkernelがあったので、コードと解説を見ながら自分でも手を動かしてみました。

Titanic Top 4% with ensemble modeling | Kaggle

視覚化もばっちりしていて大変見やすいです!

f:id:sionff:20171014101902p:plain

  • データの読み取り方
  • 視覚化のやり方
  • 適正な分割の仕方異常値の除去
  • 欠損値の補完
  • アンサンブルでのモデリング

などなどばっちり押さえてくれています。
こういうコードをさらっと書けるようになりたいな。

kaggleをやっていて気づいたこ

成績が思ったより低い問題

手元のテストデータで精度99%が出るのに、提出すると77%だったりして、なんだろうという疑問がついに解決。

単に、kaggle側では未知のデータをもとにロジックの判定をしているからでした。つまり、

  • 既知のデータ(ローカル):精度99%
  • 未知のデータ(kaggle):精度77%

そりゃそうだよね……。つまり、見事なまでに過学習しちゃってたということです。納得。

大事だと思ったこ

  • 適正な特徴量の作成(Feature)
  • 選択したアルゴリズムのチューニング
  • 視覚化

学習(fit)させるのはほんの数行で終わってしまうので、事前にどれだけデータセットを理解して前処理できるかだなーと感じました。

あとは掛ける時間とのトレードオフ。ものすごい手間かけたのに、30分で書いたコードとスコアが一緒じゃ目も当てられないし。

kaggleのslackがあるってよ

上位入賞のデータ公開や、雑談や、初心者向けの質問などkaggleに関して幅広く話せます。
早速お世話になってます! すごく刺激になるなぁ。

Join kaggler-ja on Slack!