Kaggleって何だ?

# Kaggleって何だ?

[Kaggle](https://www.kaggle.com/)はデータ分析を行う専門家向けのコミュニティです。企業や研究機関などが主催するデータ分析コンペが行われており、参加者がランキング形式でスコアを競ったり、数万ドルの賞金を獲得するためにしのぎを削っています。

コンペだけではなく、データセットの提供や専門家同士の情報交換の場にもなっており、データ分析について学習するためにも活用されています。

近年では、日本でもKaggleでのスコアを採用基準にする企業が増えてきました。高度IT活用ではデータ分析が必須となっています。本記事では、データ分析のプラットフォームとしてデファクトスタンダードになっているKaggleについて、興味があるけどあまり内容がわからない、という方向けに概要をご説明します。

## Agenda

* Kaggleって何をするところ?
* Kaggleのデータ分析コンペ
* Kaggleで失うもの
* Kaggleで得られるもの
* 凄いぞGrandmaster
* 今すぐコンペに参加する方法

## Kaggleって何をするところ?

Kaggleはデータ分析のコンペを提供するWebサイトあるいはWebサービスです。現在はAlphabet(Google)参加の企業になっています。コンペで有名なKaggleですが、(記事作成時点で)他にも以下のようなサービスを提供しています。

* データ分析コンペ
* Notebookの利用
* データセットの共有
* ユーザ同士のディスカッション(フォーラム)
* データサイエンス関連のe-learning
* ジョブマッチングサービス

2020年2月時点でKaggleの参加者(実際にランキングに参加している人)は約13万人です。ちなみに、Kaggleにアカウントを持っている人は100万人を超えているんだそうです。

### データ分析コンペ

Kaggleといったら**これ**というメインコンテンツです。コンペには賞金が出るものもありますが、全てではありません(記念品が貰えたりするものもあります)。コンペで上位に入るとKaggle内のランキングを決めるポイントや`称号(Tier)`を得るためのメダルが得られるので(得られないコンペもあります)、賞金以外が目的の人も多くいます。

コンペの開催期間は決まっていますが、終了後もデータセットが公開されたままとなり、実験や研究に利用したりすることができるものもあります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22689/e531dbe3-c2c6-5307-e0cc-8d787f68177e.png)

### Notebookの利用

Kaggleにアカウントがある人は、Jupyter Notebookの実行環境を利用することができます。ちょっと前までは`Kernel`と呼んでいましたので、今でも`Kernel`と呼んだ方が通じやすかったりします。
時間制限はありますがGPU付きのインスタンスが利用できますので、GPUが必須となる機械学習を想定したコンペへの参加も、Webブラウザが有れば誰でも可能です。

なお、コンペに参加しなくてもNotebookだけ利用することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22689/19b22ffc-4d34-8405-8b2c-441f2a44a262.png)

### データセットの共有

以外と注目されませんがKaggleの重要な役割の一つです。データセットに関しても個別にランキングがあります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22689/0501f186-df72-7e17-a245-f7143c628546.png)

### ユーザ同士のディスカッション(フォーラム)

情報交換のためのフォーラム機能です。ディスカッションにもランキングがあり、フォーラムに投稿して`いいね`を貰うことは、Kaggleでの`称号(後述)`を得るための手段でもあります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22689/0903e6f5-2c12-9cb3-b513-3027f8ad3067.png)

### データサイエンス関連のe-learning

よくあるJupyter Notebookを使ったe-learningです。今のところは全部Free?

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22689/480ffd09-94c1-b910-f11f-d5fdbb8bba9f.png)

### ジョブマッチングサービス

いつの間にかやっていたジョブマッチングサービスです。詳細は不明。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22689/510a0e1d-e271-4716-3524-d84d9a72e2d3.png)

## Kaggleのデータ分析コンペ

そもそもデータ分析コンペとは何でしょうか?
企業や研究機関がデータを用意した上で、分析したいテーマを命題としてコンペ参加者に分析やモデルの作成を依頼します。そこで評価の高かった人がコンペの賞金や賞品をゲットできるという仕組みです。
このようなデータ分析コンペを行っているプラットフォームはKaggle以外にも色々あります。

* [Kaggle](https://www.kaggle.com/)
* [SIGNATE](https://signate.jp/)
* [Topcoder](https://www.topcoder.com/)

### データ分析コンペの例

そもそもデータ分析には研究目的で命題が設定された`トイプロブレム`と、現実の問題を解決することを目的としたものの2種類があります。賞金が出るものの多くは後者です。

また、推論モデルを作る以外にも、データの特徴を解説するためのNotebookを作ることを目的としたコンペも存在します。

以下は推論モデルの作成かつ、賞金がでるコンペの例です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22689/08faf7b8-6f4b-119e-5785-98a7eb23eeb5.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22689/a0e38fa0-f3c8-784b-dc49-ce418aafd1ea.png)

### どうやって評価を決めるのか

推論モデルを作成するコンペでは、主催側がモデルをトレーニングするためのデータと精度を判定するためのデータを別けています。

精度を判定するためのデータには答えとなるラベルはありませんが、作成したモデルで推論した結果をKaggleのサイトで提出すると、主催者側だけが持っているラベルデータで精度を即座に判定してくれます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22689/81c234fe-4c33-15d7-5b26-5aca0eb29f92.png)

コンペ期間中はこの時の精度に関するスコアで`Public Leaderboard`に現在の順位が表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22689/a7c662da-5499-402d-5ea1-c7d660ceb55e.png)

`Public Leaderboard`はコンペ内での順位を確認するためのものですが、もう一つ`Private Leaderboard`というものがあります。これはコンペ終了後に正式に評価を決定するためのものです。
コンペの賞金はこの`Private Leaderboard`に基づいて支払われます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22689/f41a2ee8-ec91-7c4a-2134-3ebf3ed40b42.png)

#### なぜPrivate Leaderboardがあるのか?

コンペ中に全てのデータを利用した精度計測をしてしまうと、コンペ中の提出結果で得られた精度だけをターゲットとして推論モデルを調整することが可能になってしまいます。つまり汎用性のないモデルの方が精度が高くなってしまいます(一応、ほとんどのコンペでは一日の提出回数に制限があります)。

これでは実用に耐えないため、コンペ中の順位を確認するために使用されるデータは、本来の命題を表現するものの一部(Hold out)となっています。データの一部と全部では精度の評価が逆転することがあるため、`Public Leaderboard`では賞金圏内でも、実際の`Private Leaderboard`では圏外になるということがよく発生します(当然逆の場合もあります)。

このようにPublicとPrivateで順位が変更になることを`Shake up`といいます。

### データ分析コンペで貰えるもの

コンペの賞品(Prize)は以下のものがあります。

* 賞金・・・多くは数万ドル程度。過去には最大300万ドルなんてコンペもあったらしい。
* SWAG(Stuff We All Get)・・・Kaggle印のTシャツとかペンとか靴下らしい。
* Kudos・・・直訳すると名誉。きっと褒めてもらえる。
* Knowledge・・・知識が得られますよという事。トイプロブレムなど。

その他、ほとんどのコンペではKaggle内でのランキングを決定するためのポイントや称号を得るためのメダルが貰えます(貰えないコンペもあります)。

### コンペによっては制限がある

コンペによってはモデルの学習で使用するGPUの実行時間に制限があったり、インターネットへの接続が禁止されているものがあります。

この制限は、実際にモデルを運用する場合のリソースや環境の制限を表現しています。

## Kaggleで失うもの

`時間・お金・仕事`。Kaggleに参加すると、これらの多くを失います。

### Kaggle Before/After

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22689/38164b3f-add8-2011-b07e-3e1b1df7c91f.png)


### Kaggle中毒
 
Kaggleのコンペ開催中は、データサイエンティストは皆Kaggleの分析をすることに夢中になり、設計したモデルのトレーニングの合間に仕事をするだけになります。

Kaggleで死力を尽くすため、コンペ終了後は暫く使い物になりません。
また、KaggleはJupyter Notebookの実行環境を提供してくれますが、それだけでは処理能力が足りずに自分でお金を出してクラウドの実行環境を利用したり、ハードウェアを揃えたりする人もいます(コンペによっては制限がありますが)。

この結果、時間は勿論のこと、お金を失い、本来の仕事をしなくなります。
このような状態を`Kaggle中毒`といい、深刻な社会問題となっているような気がしないでもありません。

## Kaggleで得られるもの

コンペに参加すると賞金や記念品、知識などを得られますが、多くのKaggle参加者(通称`Kaggler`)が重視しているのがKaggle内のランキングです。

ランキング以外にもKaggleへの貢献度に応じた`称号`があります。上位の称号を得ている人は、様々な企業に好待遇で就職することが可能です。(たぶん)放っておいてもヘッドハンティングが絶えません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22689/b49028a2-8163-d43f-aeb0-eaff9f8223fc.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22689/e28c5074-f575-11f7-ad18-42762cc960e2.png)


> 私はランク外です・・・。

### Kaggleの称号

Kaggleに登録しただけの状態は`Novice`です。コンペに参加してポイントを得る以外にも、自分のNotebook(Kernel)の公開、ディスカッションへの参加、データセットを提供したりなどで`いいね`をもらうことでも、上位の称号にステップアップができます。

Kaggleの称号は以下の段階があります。

* Novice
* Contributor
* Expert
* Master
* Grandmaster

## 凄いぞGrandmaster

2020/02/06現在、データ分析コンペ部門での`Grandmaster`は全世界で177人です。2019年の情報になりますが、**日本人は10名程度**だそうです。

Kaggleはデータ分析の専門家であれば必ずアカウントを持っているデファクトスタンダードとなっています。その中で`Grandmaster`の称号を持っている人はごくわずかであり、`Grandmaster`を要している企業は、それ自体が企業価値として評価されます(きっと)。

`Grandmaster`の称号を持つもの、その人はデータ分析の分野で`地位・金・名誉`の全てを持っていると言えなくもないかもしれません。

## 今すぐコンペに参加する方法

Kaggleのコンペに参加するためには、まずはアカウントを作成する必要があります。
アカウント作成やコンペへの参加に条件はなく、お金もかかりません。

さらに、[私が現在参加しているコンペのNotebook](https://www.kaggle.com/lhideki/bert-with-kfold)をForkすることで、今すぐコンペに参加して順位を確かめることができます。

## 参考文献

* [Kaggleで勝つデータ分析の技術](https://www.amazon.co.jp/Kaggle%E3%81%A7%E5%8B%9D%E3%81%A4%E3%83%87%E3%83%BC%E3%82%BF%E5%88%86%E6%9E%90%E3%81%AE%E6%8A%80%E8%A1%93-%E9%96%80%E8%84%87-%E5%A4%A7%E8%BC%94/dp/4297108437)