未経験からPython学習2ヶ月でKaggleに参戦するための戦略
Python学習を始めて2ヶ月弱。
Jupyter Notebookも多少は分かってきたので、時期尚早と理解しながらもKaggleへの入門をしてみたいと考えています。機械学習の勉強をある程度進めてからでも良いかと思っていましたが、まあ参加する分には問題あるまい。
以下、参考にしたサイトと、そこで学んだことを記していきます。
1 さっさとKaggleに参加するぞ!と思ったサイト
Kaggleでは以下の流れで進めていくと良いとのこと。
(1)参加するコンペを選ぶ
画像認識系等、マシンパワーが求められるものもあるとのこと。知らんかった。
(2)カーネルを見る
カーネルって何?というレベルではあるが、まあ良しとしよう。
高評価のカーネルを読み、多分そのまま提出したら現在のボーダーが分かる模様。
基本はカーネルを読む→意味を考える→試行錯誤する、の流れか。
で、カーネルの手順も大体以下のような流れとのこと。
- ライブラリのインポート
- データの読み出し、Shape確認(ヒストグラム、散布図等)
- 前処理(欠損値の確認、置換、ダミー変数化等)
- 特徴量エンジニアリング(文字列→日付型、推測と相関するデータ探索等)
- データ準備(主キーでの突合せ等)
- 交差検証・KFold分割法
- Submit
これを見て感じたのは、「中身に関しては意外に知っているな」、ということ。言葉の定義がよくわからないのもあるし、「交差検証・KFold分割法」なんか意味わからんけど。先に読んでいた、100本ノックの本で学んだところと結構被る気がする。
ということで、とりあえずKaggle入門そしてコンペ参加をしようと思った。
さっさと参加して、前処理大全などを見つつ、逆引きして学んでいった方が「Kaggleでメダルを取る」という目的を達成するには良さそうである。特にデータの前処理は経験がものを言うそうなので、プログラミング初心者ではあるが、ガシガシ参加してみたいと思う。
2 ところがどっこい、まずはSIGNATE参戦の方が良いのか・・・
KaggleよりもまずはSIGNATEの方が良いような気もした。SIGNATEには演習問題もあるみたいで、まずはそちらの方にすべきか。
うーん、でもまずはKaggleに入門し、そこで手も足もでなければSIGNATEに行ってみたいと思います。
3 いざKaggleに登録
ということで実際にKaggleに登録しました。すげー無茶な感じがしますが。とりあえず。チュートリアルとして、タイタニック(クラス分類問題)と住宅価格予測(回帰問題)コンペ、というのがあるみたい。
↓ということで登録してみました。プロフ画像が鳥類…。
そしてダウンロードしたデータをそのまま提出し、とりあえずランクインしました。
おお、これで一応Kaggleデビューは果たしたことになりそうです。ううむ、感慨深い。
しかしどうすればランクが上がるのか、分かるようで分かってないので、引き続き勉強を進めていきます。
これも今日買って読んでみよう