データサイエンティストハトリのブログ

PythonとインテリジェントクラウドとAIが好きな学生エンジニア。データ分析、スクレイピング、就職活動などについて書いていきます。

データサイエンティスト必見!初心者がkaggleで上位10%のスコアを出すためのおすすめ勉強法!

f:id:hatorihatorihatorik:20180929044318j:plain

 

こんにちは、どうもハトリです!!

 

TwitterでプログラミングやIT関連のことについてつぶやいているのでよかったら是非フォローしてください →→(@tori_engineer)

 

kaggleとは?

kaggleとは、企業とデータ分析のプロであるデータサイエンティストをつなぐプラットフォームです。

 

企業がコンペ形式で課題とそれに必要なデータセットを提示し、賞金の提供と引き換えに最も精度の高い分析モデルを得る、といった仕組みになっています。主に、海外の企業の案件が多いですが、日本の企業でもメルカリやリクルートが参加しました。

 

賞金の額は、平均$48,130(約500万円)ほど、もっとも高いコンペだと$1,500,000(約1.6億円)ほど。昨年googleに買収され、ますます盛り上がりを見せています。

この記事を読んだらどの程度のレベルになれるのか?

f:id:hatorihatorihatorik:20180929044315j:plain

今回の目標は、kaggleの何かしらのコンペで上位10%に入ること、とします。なぜ10%かというと、実際に実務で使えるのはそのくらいかなと個人的に感じているからです。

 

技術力の指標として使われている

実際に新卒採用でもweb系企業では、この10%が基準となりkaggle採用が行われています。

 

例えば、ヤフーでは初任給650万円採用(エンジニアスペシャリストコース)というものがあり、受験資格としてkaggleで上位10%以上のスコアが求められています。 

DeNAでは、データサイエンス人材の採用強化を目的に、データ分析や機械学習の世界的なコンペティションへの参加に業務時間の20〜100%を使うことを認める新制度が4月から始まったそうです。 

 

総合商社の丸紅株式会社でもデータサイエンティストの中途採用を募集したりしています。

 

データサイエンティストの需要は現在とても伸びてきています。また、あらゆる業界で今後必要なスキルとなっていくでしょう。

 

kaggle上位10%に入るための具体的な勉強手順

f:id:hatorihatorihatorik:20180929044312j:plain

 

具体的な勉強法を書いていきます。ある程度前提知識がある方はすっとばしちゃって大丈夫です。

 

1. pythonの基礎、文法を学ぶ

2. 簡単なデータ分析(処理?)問題をひたすら練習する

3. AIとは何か?機械学習とは何か?を理解する。

4. 実際に解いている人の解説を見ながら、データ分析の流れを学ぶ。

5. kernelやqiitaを見ながらkaggleに挑戦する!

 

1. pythonの基礎、文法を学ぶ

他の言語をやったことがない人は必須でしょう。逆にやったことある人は軽くやる、又はすっとばしちゃっていいと思います。ここで、pythonを書く、ということに慣れていってください。

おすすめサイト

・Progate

一部有料。UIがとても綺麗で初心者にもっとも人気の教材です。私はプログラミング講師を2年やってきましたが、これを使って勉強してる人がもっとも多いです。

Progate | プログラミングの入門なら基礎から学べるProgate[プロゲート]

 

2. 簡単なデータ分析(処理?)問題をひたすら練習する

データ分析ではpythonの基本的な文法だけでなく、データ分析用のライブラリを使っていきます。PandasやNumpyが代表的なデータ分析ライブラリです。これらの使いかたを練習しましょう。この練習をさぼってしまうと後々辛くなってくるのでしっかりと勉強しましょう!

おすすめサイト

・Dataquest(Dataquest)

海外のサイトなので、英語が苦手な方は苦しむかもしれません。解説を読んだ後に、それを使った問題を解いていき、クリアすると次の問題に行けます。私は無料版に止まりましたが、有料版までやりこむとかなりスキルアップできます。

 

・Aidemy

こちらも全て無料で、初歩的な文法からディープラーニング自然言語処理、数値予測を学習できます。

こちらは有料コースにすると、初心者がつまづきやすい部分の手厚いサポートを受けることができます。

aidemy.net

3. AIとは何か?機械学習とは何か?を理解する。

f:id:hatorihatorihatorik:20180929044309j:plain

他で紹介した教材でもカバーできる場合もありますが、今回あえて書きました。この後勉強を進めて行くと、ディープラーニングだのニューラルネットワークだの回帰だの、最初はよくわからない単語がたくさん出てきます。大ざっぱな概念を理解しておくことで、今後の学習がスムーズに進みます! 

4. 実際に解いている人の解説を見ながら、データ分析の流れを学ぶ。

この辺でデータサイエンスの基礎が身についてきたと思います。これまでの練習問題では、小さくて綺麗なデータを扱っていましたが、実務でもkaggleでもすこしデータに対する考え方が違ってくると思っています。

 

実際にやっている人の様子を見ながら一緒にやることで、kaggleをやり方だったり、進めていき方がわかってきます。

 

おすすめサイト

 

Youtube

kaggleユーチューバーの方が環境構築からデータ分析を分析してkaggleのサイトに提出するところまでを丁寧に説明してくれてます。

www.youtube.com

 

・Udemy

こちらは有料動画になりますが、自分のレベルに合わせたさまざまな講座を受けることができます。とてもわかりやすく、オンラインチャット上で質問もできます。

www.udemy.com

5. kernelやqiitaを見ながらkaggleに挑戦する!

実際にkaggleに挑戦してみましょう!

 

kaggleにはkernelという機能があります。これはそのコンペで、こういうコードをかいたらうまくいった!といったような情報共有をしてくれるものです。先人の知恵を生かしながらコードを書いて行くことでよりスピーディーにスコアを上げることができます。

 

おすすめの検索方法は、competitonページトップ>Kernels>Sort by Most Votes 、Languages→Python、Types→Notebook、で絞り込み。

 

kernelは英語で書いてあるため読むのが難しいな〜、という方はqiitaにもkaggleで解いたコードがたくさんころがっているので調べて見るといいでしょう。

 

最後に

f:id:hatorihatorihatorik:20180929044306j:plain

ここまで読み終えて、実践した方はもう一人前のkagglerですね!ここで一つ疑問を持った方がいると思います。

あれ、数学の勉強はしなくていいの?統計は?線形台数は??

 

実はTOP10%までは、コーディングの知識と力技でなんとかスコアを上げることができます。しかし、賞金をもらえるようになるためには上位3位以内に入賞しなければいけません。

 

kaggleはこのTOP10%からの壁がとても大きいです。そのためには、数学をきちんと学び実力をつけてください。またとても力技なところもあります。上位入賞者はコンペ締め切り間近になると、睡眠時間を削ってkaggleをやるらしいです。

 

一流のデータサイエンティストを目指してがんばりましょう!