はじめに
機械学習の学び方や学習フローを調べると、やったほうがいい事として**「Kaggle」**に参加することが書かれてることが多いです。
Kaggleはデータサイエンティストの闘技場みたいなものでして。
Titanicコンペがチュートリアルとして有名ですよね。
実際のデータに触れて、前処理やモデル構築をして、より良いモデルを作っていく。
そうした練習ができるということで初心者からするととても有益です。
ただ、自分もそうなのですが、
###「Kaggleのアカウントは作った。タイタニックコンペもやってみた。この後どないすりゃええねん!」
となる初心者の方は多いのではないでしょうか?
実際自分は、タイタニックコンペが終わった後どのコンペに参加したらいいかわからず、モチベが出ずに放置してしまいました。
ただ最近、再び本腰入れて機械学習を学び始めて2ヶ月、Kaggleに再びチャレンジしてみようということでチャレンジしており、Kaggleの楽しさがわかってきて、自分なりにタイタニックの後はこれをやったほうがいいのではと思うところがまとまったので、同じ境遇の方の参考に少しでもなればと思って共有させて頂きます。
結論:Tabular Playground Seriesに参加しよう
表題の通りです。
コチラの記事にも書かれていますが、自分もこのコンペをタイタニックの次におすすめしたいです。
(2021/09/01) 更新
9月になったので Sep 2021 が開催されてます。(表題リンク先も9月に変更してます)
ざっと見た感じ特徴は下記と一緒ですが、今度は2値分類のようです。
レコード数は90万越えと結構ボリュームあります。
また1ヶ月頑張ります。
記事の通り、毎月新しいデータで開催されており、8月は **Aug 2021**が実施されていました。
特徴としては
1. データ構成がタイタニックと一緒で取り組みやすい。混乱しにくい。(train.csv, test.csvと提出用csvの3つ)
2. レコード数が比較的多い。(trainデータが25万、testデータが15万)
3. 変数名が匿名化されており、いわゆるドメイン知識が必要とされない。(その分難しさもありますが...)
4. Activeなコンペであった。
ということが挙げられます。
1に関しては、データの取り込み、データの状況を見てみるといったファーストステップが簡単という意味で大事な所です。
これは僕の反省点でもあるのですが、タイタニックの次に複数テーブルのコンペをやってみた所、そもそもどのテーブルと繋げたらいいかとかで困惑してしまい、データ自体を見れない、面白くないとなってしまいKaggleから離れることになってしまいました。
もちろん甘えてばかりだと何も身につかないのは事実です。
が一番良くないのって、理想を追い求めすぎて、挫折してしまうことだと思います。
いきなりコードがすらすら書ける、すぐデータの重要なところを特定できて、モデル選択がすぐできる、なんて無理な話なので、初心者なら初心者なりに少しずつステップアップが大事だと思います。自分がそうなので。
2は多すぎず少なすぎのデータ量でこの後に繋げやすいです。
3は変数名があると、これとこれが関係しそう、これとこれを組み合わせたら良さそうなどという特徴量の生成が大事になっちゃいます。Kaggle初心者がこれを行うのは正直、ハードル高くないですか?
このコンペは匿名化されており、そうしたことにあまり時間が割かれないので初心者に優しいポイントです。
4は個人的には一番大事なポイントです。
何当たり前のこと言ってんだというツッコミが入りそうですが、やはり他の人も参加して、リアルタイムに順位が動いてというアクティブなコンペの方がモチベが出ます。
初心者は**「過去のコンペのノート見て勉強しろ」**という指摘は間違ってないですが、それでモチベーション維持できる人の方が少ない気がします。自分がそうです。
というのもクローズしたコンペって期限がなく、いつでもスコアが出せるし、提出回数制限もないので、一回提出して、次はここを変えて提出しようという気にならないんですよね。
昔の自分はデータだけDLして、ノートを参考に、一回ベースラインを提出して終わりとなったコンペがたくさんあります。
ただこのコンペに参加してからは毎日上限まで提出してスコアを見るのが楽しくなりましたし、明日はこのモデルの結果を提出しようとか、Kaggleを意識する時間が以前より格段に増えました。
画像コンペならDigit Recognizerがいいかも
自分はテーブルコンペより画像コンペに興味があったので、そういう人もいるかと思って画像コンペの初心者向けのものも共有できればと思います。
これはいわゆるMNISTデータのコンペです。0~9までの手書き文字を分類します。
データの概要欄にも**「初心者はここから始めてください」**と言ってるくらいです。
ローリングリーダーボードなので、疑似的ではありますが、期限もあるのでモチベーションは保ちやすいです。
普通のMNISTってtensorflow
のDataset
から簡単にDLして用意できるので画像データをTensorflow
に読み込ませる流れというか、前処理が簡単すぎて、いざローカルのjpgファイルを読み込ませたい!
ってなった時に**「ん?どうやって読み込むんや?」**ってなりがちだと思います。
このデータはjpgといった画像ファイルではないですが、28×28 = 784ピクセルの1つ1つの値が0~255の範囲でcsvファイルに記載されてます。それを4次元の画像データとして読み込ませるまでの処理が学べるので有益なコンペだと思います。
最後に
タイタニック→Tabular Playground Seriesコンペで前処理、モデル構築・予測・評価、スコア提出、スコアアップの楽しさを学ぶ→興味のあるコンペへ
初心者は上記のフローでやるとモチベーションを保ったまま次に繋げやすいのではないかと思います。
現在自分もこの2つのコンペに参加してますので、コンペ期間が終わったら、コンペへの感想などまとめられたらと思います。
同じ機械学習やデータサイエンス学びたての方の参考に少しでもなれば嬉しいです。