【1章】The Kaggle Bookをちゃんと読んでみる


## 1.1 データサイエンスコンペティションプラットフォームの台頭


```mermaid
---
title: データサイエンス系のコンペティションの歴史
---
flowchart TD
C1("ACM (Association for Computing Machinery)")
C2("KDD Cup, 1997~")
C3("Netflix Competitions, 2006~")
C4("Kaggle, 2010~")
C1---|会期中にコンテストとして実施|C2
C2-->C3
C3-->|他にも多数の企業がコンテスト開催|C4
C5("Google")
C5-->|買収|C4
```

:::note info
1997年開始のKDDカップがデータサイエンス系のコンペティションとしての最初期
:::

- [KDD Cup](https://kdd.org/conferences)
- [KDD Cup優勝者が記録されたアーカイブ](https://kdd.org/kdd-cup)
- [KDD Cup 2021 - Overview of OGB-LSC](https://ogb.stanford.edu/docs/lsc/)


**Netflixのコンペティション**

1M$(約1.2億円)の賞金が特徴。既存のNetflixのアルゴリズムを改善できた場合という条件。
既存のアルゴリズムの精度を上回ったので賞金を支払ったが、DVDからストリーミングへの過渡期だった関係でプロダクトへの反映はされずに終わってしまった。このコンテストの際に、**協調フィルタリング**が一躍有名になった。

- [Netflix Never Used Its $1 Million Algorithm Due To Engineering Costs](https://www.wired.com/2012/04/netflix-prize-costs/)

他にも、[GEのコンペティション](https://www.kaggle.com/c/flight)では、旅客機の到着時刻の予測を40%改善する結果となった理、[Allstate Insuranceのコンペティション, 2011年](https://www.kaggle.com/c/ClaimPredictionChallenge)では、保険数理モデルを改善できた例あり。


### Kaggleの立ち上げ

:::note info
KagglerはDataRobotなど傑出した企業を立ち上げたり、広く使われることとなったフレームワークの発表の場となった。また、エンジニアのスカウトの場所としても活用され始めた。
:::


```mermaid
graph TB
P1("Anthony Goldbloom")
P2("Jeremy Howard")
P1 -->|Founder| Kaggle
Kaggle ---|winner| P2
P2 -->|President| Kaggle
P2 -->|Founder| S1("fast.ai, Startup")

subgraph A[Kaggler]
direction LR
k1("Jeremy Achin")
k2("Thomus de Godoy")
k3("Francois Chollet")
k4("Tianqi Chen")
end

k1-->|Founder|C1("DataRobot")
k2-->|Founder|C1
k3-->M1("Keras発表")
k4-->M2("XGBoost発表")
```

- [KaggleでGeoffrey Hinton優勝](https://www.kaggle.com/c/MerckActivity/overview/winners)
- [ディープラーニングのフレームワークKerasの発表](https://www.kaggle.com/c/otto-group-product-classification-challenge/discussion/13632)
- [XGBoostの発表](https://www.kaggle.com/c/higgs-boson/discussion/10335)


kerasは多様なモデルを迅速に使える状態にするために設計されており、コンペティションで結果を残すためには有力なツール。多くの人に今なお活用されている。

:::note info
機械学習コンペティションでは、勝利するのは最初から最良のアイデアを持ち、それを実装して結果を提出し、忘れてしまうような人たちではまれです。良いモデルを開発するには、締め切りまでに初期のアイデアに何度も反復して作業する必要があります。モデルをさらに改善することは常に可能です。最終的なモデルは、問題に初めて取り組んだ時に想像した解決策とはほとんど共通点がないことが一般的です。というのも、事前の計画は実験的な現実との対峙をほとんど生き残ることができないからです。そのため、勝利は理論的なビジョンがどれほど優れているかではなく、ビジョンが現実とどれだけ接触しているかによるものです。あなたはより賢い人に負けるのではなく、より多くの実験を反復し、そのたびにモデルを少しずつ洗練させた人に負けるのです。Kaggleでチームを実験の回数でランク付けした場合、最終的なコンペティションのリーダーボードと非常に強い相関関係が見られると確信しています。

Kerasは、多様なモデルを迅速にプロトタイピングする方法として設計されました。アイデアから実験結果までの時間を可能な限り短縮することに重点を置いています。KerasのAPIとワークフローは、新しい実験を設定する際のオーバーヘッド（コードのオーバーヘッドと認知のオーバーヘッド）を基本的に減らします。したがって、Kerasを使用することで、より速く反復し、より多くのことを試すことができます。究極的には、これによりコンペティションで勝利したり、論文を発表したりすることができます。アイデアから結果に至るまでの遅延を最小限に抑えることは、良い研究を行うための鍵です。これはKerasの背後にある核心的な信念の一つです。

[Why has Keras been so successful lately at Kaggle competitions?](https://quorasessionwithfrancoischollet.quora.com/Why-has-Keras-been-so-successful-lately-at-Kaggle-competitions)
:::

### Kaggleというプラットフォームで学ぶメリット

- データサイエンスの素養を活かして会社を立ち上げる
- 機械学習のソフトウェアをリリースする
- 夢だった仕事に就く

などなど。


### 他のプラットフォーム

- [DrivenData](https://drivendata.org/cometitions)
- [Numerai](https://numer.ai/)
- [Grand Challenge](https://grand-challenge.org)


### Kaggleのコンペティションの種類

:::note info
通常の賞金つきコンペ（Featured）以外にも初心者向けのコンペや採用目的のもの、クローズドなコンペなどが存在する
:::


```mermaid

graph LR

C1("Getting Started")
C2("Playground")
C3("Annuals, Research, Recruitment")
C6(Featured)

c1(Digit Recognizer, etc)
c2("Dogs vs Cats")
C1-.->c1
C2-.->c2
```

## 競争力学について

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/253735/b8143ac9-7c28-0e34-f4e7-d3e11ff84358.png)

:::note info
コンペティションプラットフォームにおこる競争力学やCommon Task FrameworkについてDavid Donohoの50 years of data scienceに包括的な説明が記載してある
:::

- [David Donoho](https://statistics.stanford.edu/people/david-donoho)
- [50 years of Data Science](https://courses.csail.mit.edu/18.337/2015/docs/50YearsDataScience.pdf)


### 悪いコンペティションについて

:::note warn
競争力学が働かないケースは、①データの漏れ、②リーダーボードでのプロービング、③過剰適合や④プライベート共有などが挙げられる。
:::

- [ソリューションのプロービング, zachの優勝ソリューション](https://www.kaggle.com/c/dont-overfit-ii/discussion/91766)


**敵対的テスト**

- リーダーボードをどれくらい当てにできるのかを知るために行うテスト。[Bojan Tunguzのノートブック](https://www.kaggle.com/code/tunguz/adversarial-ieee/notebook)に具体的な例が載っている。

### columns

:::note info
[ノーフリーランチ定理](https://analyticsindiamag.com/what-are-the-no-free-lunch-theorems-in-data-science/)とは、全ての問題で他のアルゴリズムを打ち負かすアルゴリズムが存在しないことを示した定理。
:::




### 称号やランキング


|rank|
|-|
|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/253735/fffe7652-8f44-77bf-6bc7-ba5a3e66a70d.png)|
|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/253735/e8d04a55-0cfe-cf73-caa3-e4dfd7a53e50.png)|
|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/253735/dbdc29d7-4a4d-7e23-cf19-5a54f42ab0a6.png)|
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/253735/ec7b7b1c-b95c-f3c3-735d-b1719c953a99.png)
|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/253735/f0b0e6e4-5e4d-9dfa-5eb0-303392894631.png)|

:::note info
コンペに限ると、2回銅メダルが取れればExpertに昇格。金メダル1個と銀メダルが2個取れれば、Masterに昇格。5回金メダルが取れれば、Grandmasterに昇格。
:::



![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/253735/813a7f83-49d1-11af-e370-9e0c875289f3.png)

:::note info
金メダルはトップ10位(+0.2%)、銀メダルはトップ5%、銅メダルはトップ10%
コンペごとに参加人数が分かれば、メダル条件を正確に把握できる
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/253735/788114ab-8fab-e1ff-2bb1-7be129a2808a.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/253735/ed3c9130-f692-d770-12c2-28fdd2ee7a75.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/253735/7366ae76-e981-d64d-92a0-e9b123420a4e.png)

:::note info
コンペ以外でも、データセットを作成したりノートブックを作成したり良いディスカッションができたりすると、投票数に応じてメダルをもらえることがある。細かく読むと、古い投稿に対する投稿やNoviceからの投票は無視されるので注意が必要。情報の鮮度も関係してくるらしい。
:::

- [Kaggle Progression System](https://www.kaggle.com/progression)





## まとめ
- コンペの成り立ちや競争力学についてもっと深掘りしたい（`50YearsDataScience.pdf`は読んでみる必要あり）
- メダル獲得条件や称号の昇格条件について知ることでモチベーションが上がった（まずは銅メダル2つ！10%以内）
- コミュニティに有益な情報をもたらす行為も評価されるらしい。他人に説明しやすい記述の仕方やデータの可視化手法について学んでいくことも大切