【非プログラマー向け】Kaggleの歩き方

この記事は、[Kaggle Advent Calendar 2019](https://qiita.com/advent-calendar/2019/kaggle)のアドベントカレンダー３日目の記事です。

「**Kaggle興味あるけど、ガチっぽくて怖い…**」と思われている方向けの参考になればと思います！

※以下情報は2019/12現在のものです 

# Kaggleと出会うまで

Kaggleと出会う前の経歴は、ざっと以下です。

- マーケター ⇒ コンサルタント
- 文系出身（美術史専攻）
- プログラミング未経験（HTML少し触ったくらい）
- 黒い画面に畏敬の念しかない…

![図13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/327398/a8f8ca0e-f09c-8f84-b3af-0bed9c482057.png)


こんな状態でしたが、直近１年でPython＆機械学習を勉強し、なんとかKaggleのことも分かってきました。なので、１年前の自分に向けて、これ知っとくと良いよ、という事を書いていきます。

# 対象読者


### 誰に？
- データ分析/機械学習スキルを伸ばしたい
- Kaggle楽しそうだけど、プログラミング未経験
- 主にマーケターや企画職

### 何を？
- Kaggleは試しておいて損はないぞ！

※Kaggleツヨツヨな方向けの内容ではありません
※個人的な主観がメインです（いわゆるポエム）

# 「Kaggle」とは何か？

#### Kaggleとは

ひと言でいうと「機械学習」を用いたデータ分析の天下一武道会です
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/327398/6032288b-d645-115f-c671-a97ad76e054d.png)

#### 分析するデータ
- 企業がデータとテーマを提供し、コンペを開催
- テーマは、医療・マーケティング・金融など多岐にわたる


#### コンペ開催期間
- １～３か月間ほど
- 比較的長い

#### 順位
- 機械学習モデルを作成し、そのモデルの予測結果で順位づけ



#### 賞金
- 上位者には賞金が出るコンペも
- 2019/12現在 開催中のDSBコンペは１位 $100,000（約1000万円！）

#### 参加費
- 無料！

#### 登録ユーザー
- 約12万人（2019/12現在）　※[参照元](https://www.kaggle.com/rankings)


# ランクについて

Kaggleには、強さによって５つのランクが存在します。
（厳密には、コンペでの強さ以外にもKernels,Discussion,DatasetsといったKaggleコミュニティへの貢献によっても、ランクがもらえます）

- Grandmaster　※最強…！
- Master
- Expert
- Contributor
- Novice　※まずはここから


Kaggleに取り組む人々（通称：Kaggler）は、このランクを上げるために日々大量の時間を投入してコンペを頑張っている、といっても過言ではありません（たぶん）


#### ランクごとの人数

2019/12時点での人数は以下
![キャプチャ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/327398/eda47b1b-4583-cee9-7033-3823fb007ccc.png)



#### 各ランクのイメージ

各ランクの概要とイメージ図です。（あくまで主観です）
![図1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/327398/1447c6d7-67fa-7d1c-6d45-1ca52b8c007f.png)


#### ランクアップ条件

ランクアップ条件はこちら。（Competitionsにおいて）
Expertから、いきなりメダルを要求されます。。。初心者の方は、まずExpertを目標にしたいところです。
![図2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/327398/f3fb7968-48cf-b372-0069-a0d0fa48b403.png)

#### メダル獲得条件

メダルはGold、Silver、Bronzeの3種類。

メダル獲得条件はこちら。（Competitionsにおいて）
参加人数によって厳密な条件は異なりますが、以下が目安です。

- Gold：Top10
- Silver：Top 5%
- Bronze：Top 10%（※）

※いきなりTop10%なんて！と思われるかもしれませんが、一説によると、コンペ開催中の情報（Notebooks,Discussionなど）を丁寧に拾っていくだけでも、Bronze獲得は夢ではないらしい・・・（生存者バイアスの可能性あり）

![図3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/327398/1b687497-262f-7b5c-c189-0bb3d934dac6.png)



# 例えばこんなコンペ

#### タイタニック号沈没事故の生存者予測

- [Titanic: Machine Learning from Disaster](https://www.kaggle.com/c/titanic)
- Kaggleにおける「Hello World」的なコンペ
- 練習用コンペなので、特に期間の終わりは無い
- 乗船者の性別、年齢、乗り込んだ港、客室ランクなどのデータをもとに、その乗客が生存するか否かを予測
![FireShot Capture 205 - Titanic_ Machine Learning from Disaster - Kaggle - www.kaggle.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/327398/ed8a8369-f4e3-3fbb-96c8-fc02bec61d7b.png)



#### ペットショップでの犬・猫が引き取られる速さの予測

- [PetFinder.my Adoption Prediction](https://www.kaggle.com/c/petfinder-adoption-prediction)
- 2018/12～2019/3まで開催
- 1位賞金は10,000ドル
- 各ペットのプロフィール、説明文言、写真などのデータをもとに、そのペットが養子として引き取られる速さを予測
- テーブルデータ、画像、テキストといった複数ソースをもとに予測する実践的なコンペ
![FireShot Capture 206 - PetFinder.my Adoption Prediction - Kaggle - www.kaggle.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/327398/9dc993a3-dba6-8698-0460-286c5baa00e9.png)


# Kaggleをやるメリット

Kaggleをやるメリットを、３つ挙げてみました。

#### ①自分のデータサイエンススキルがわかる（証明にもなる)

データサイエンススキルは、実践を通さないと実力が測りづらいものです。
ただ、Kaggleでメダルやランクを獲得していると、おおよそのデータサイエンススキルが証明できます。最近はKaggle採用をしている企業も徐々に増えており、ステップアップ時の証拠にもなります。
![図4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/327398/73e1c15d-9150-a81a-a5d5-ae7c12af90e9.png)


#### ②世界のデータサイエンティストのノウハウが学べる（無料で！）

自分も実際にコンペに参加してわかったのですが、Kaggleではただ相手と競うだけでなく、ノウハウや情報をシェアし合うすばらしい文化があります。
特に、「Notebooks」では、データサイエンスのノウハウ＆流行が、コードと一緒に分かりやすく説明されており、初心者にもおすすめです。
![図5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/327398/32247d9a-0991-5e0c-77d3-34ef230d1b23.png)


#### ③機械学習が何をやっているのか、肌感レベルで理解できる

昨今、身の回りのアプリやマーケティングツールに、どんどん機械学習が組み込まれています。
Kaggleをやっていれば、機械学習のモデリング過程をひととおりマスターできるので、機械学習で何ができて何ができないのか、肌感覚で理解できます。
![図6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/327398/67a57b9e-1ff3-debc-0a6c-df1be4ad078f.png)


# Kaggleはここから始めるべし

いろいろと異論はありそうですが、個人的なポイントは以下３つ。

#### ①機械学習/Python 知識ゼロなら、「松尾研」テキスト１択！

機械学習/AI関連で有名な東京大学の松尾研究室。

その松尾研究室が行っている「データサイエンティスト育成講座」のテキストを、無料でダウンロードできます。これはすごいことです、事件です！
文章とPythonコードで機械学習の初級者卒業レベルを丁寧に解説してくれていますので、Kaggleの内容が理解しにくい方は、こちらを完了させると良いかと思います。

▼「松尾研」テキスト ダウンロード先はこちら
https://weblab.t.u-tokyo.ac.jp/gci_contents/

![図8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/327398/bb2ef3ae-b02a-f775-2c98-4fab853ce9de.png)


#### ②「Notebooks」でvote数の高いものを写経し、コツをつかむ！

さきほども述べましたが、各コンペ内の「Notebooks」は宝の宝庫です。

取り組みやすそうなコンペを選んだら、「Notebooks」のVotes数が高いNotebookを写経することがオススメです。Vote数が高いNotebookは、説明がていねいでわかりやすいものが厳選されているので、写経することでデータ取得～モデル結果提出までの流れを追体験でき、機械学習のコツが会得できます。
![図10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/327398/02ae0c82-b3ef-2edd-481e-049e7511f8db.png)


#### ③１人だと情報もなく詰まるので、誰かとつながることがオススメ！

Kaggleは基本個人戦です。ただ、コンペ期間は１～３か月と長く、モチベーションが下がったり煮詰まったりすることもあります。

そんなときに、Kaggleをやっている仲間がいると、役立つ情報の共有（プライベートシェアリングはNG）や励まし合いができ、よりKaggleを楽しむことができます。

個人的には、以下３つがオススメです。

- Kaggle関連のセミナーに行ってみる（connpassなど）
- TwitterでKaggle勢をフォローする
- Kaggleコミュニティにゆるく参加してみる

![図11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/327398/79c95f93-b614-4e4f-fca8-be2eb8728439.png)



# さいごに


Kaggleは、機械学習/データ分析の初心者～上級者まで楽しめる、とても優れたプラットフォームです。

Kaggleをやっていると、世界中のTOPデータサイエンティストとしのぎを削ったり、情報共有したり、教えてもらったり、といったことが当たり前のように出来てしまいます。ただ、よくよく考えると、これって凄いことだよなあと、この記事を書きながら、あらためて実感しました。


![図12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/327398/83f10dab-311b-9631-f6af-ca7f32b5b866.png)

これから先も、Kaggleが良いプラットフォームであり続けるために、微力ながら貢献していきたいです！（まずは、メダルほしい…）