かえるのプログラミングブログ

プログラミングでつまずいたところとその解決策などを書いていきます。

機械学習初心者な私がkaggleをオススメする3つの理由。 2018/8/19

かえるるる(@kaeru_nantoka)です。
今回は、私が最近ハマっているkaggle(カグル)についてオススメな点を機械学習初心者の目線で書いていこうと思います!

1. kaggleとは?
2. 理由1 ー 豊富なカーネル
3. 理由2 ー 目標と現在地点の距離が明確
4. 理由3 ー 自分に足りないスキルが明確にわかる
5. まとめ


1. kaggleとは?

みなさんkaggle(https://www.kaggle.com)はご存知でしょうか。
wikipedia(Kaggle - Wikipedia)によると、

***************************************
Kaggleは企業や研究者がデータを投稿し、世界中の統計家やデータ分析家がその最適モデルを競い合う、予測モデリング及び分析手法関連プラットフォーム及びその運営会社である。
***************************************

ということです。機械学習をテキストなどで勉強された方が一度は感じたことがあるであろう「こんなにたくさんのデータを1から集めるなんて大変だなあ」といった機械学習あるあるに悩まされることなく機械学習の勉強をすることができます。

また、企業や研究者はデータを提供しているだけではなく、ランキングの上位のモデルを提出した個人/グループには賞金を出しているところもあります!


2. 豊富なカーネル

先ほど、kaggleは機械学習モデルの精度を競うプラットフォームであると見てきました。なんと上位ランカーの投稿したモデルを作るプロセスを見ることができるのです!

それがカーネルです。カーネルとはkaggle上で閲覧・実行ができるjupyter notebook です。
ズバリ一流のデータサイエンティストの手法が見放題なのです!😳

私の場合、知人にデータサイエンスに精通している方がいないので書籍やネットを介してではないとこうした知見を得ることができません。
一方カーネルは、機械学習初学者向けにとても丁寧に書かれたものもあります。

高度な処理を実施していたり、その処理をしている理由を前後の文脈から読み取らなければならない難しさはありますが、これも勉強なので私としては大満足です!


3. 目標と現在地点の距離が明確

f:id:kaeru_nantoka_py:20180820001426p:plain

これは私が最初に投稿したときのものです。
このように、自分が組んだモデルの精度が点数化され、その母数の中の順位が表示されます。
自分の中に蓄積された知識をフル動員して、0.01点の変化を追うプロセスがアツいです!

またプログラミング学習あるあるである、自分の実力が客観的にどれくらいなのかが見えない問題もこのkaggleでは起こらないです。

今の自分のベストを数値という絶対的な指標でみれる、とても魅力的なフィールドです。

4. 自分に足りないスキルが明確にわかる

kaggleにはタイタニック問題(Titanic: Machine Learning from Disaster | Kaggle)という初学者向けのチュートリアルの位置付けの問題があります。

・日本語で丁寧に解説されているものがある
・この手法を応用することで他の問題を解くこともできる

と初心者でも取っつきやすい上、良いことづくめな問題です。

つまり、この問題を写経してみて内容が理解できないということは機械学習をする上での基礎が抜け落ちているということになります。
私の場合は、この時点で numpy や pandas といった機械学習ライブラリの理解不足が浮き彫りになったので、Aidemy のデータクレンジングコースで基礎を抑えた上で再挑戦したらすんなり内容が入ってきました。

このように、チュートリアルカーネルを読み進めていく中でわからないところを他の教材で詰めていく、といったようにアウトプットを前提にしているので無駄なくデータ分析の知識をインプットができます。


5.まとめ

私もkaggle歴はまだ浅いですが、以上の理由でモチベーション高く・日々コツコツ着実に機械学習の勉強を進めていることができています。
pythonを学習しているみなさんもぜひkaggleに参加してみてください!

ありがとうございました。