ねほり.com

何もないから何かみつかる

Kaggleの概要を理解する(Titanicの次に向けて)

   

これまで、Kaggleの「Titanic: Machine Learning from Disaster」「House Prices: Advanced Regression Techniques」「Digit Recognizer」に参加しました。

ですが、そもそもKaggleの仕組みが分かってないのでないので調査しました。

敵(Kaggle)を知る

なぜ多くの人がKaggleコンペに参加するのか?

Kaggleに参加するデータサイエンティスト(以降、Kaggler)は、幅広い機械学習問題への取り組み経験から得られる引き出しの広さと、限られた時間で高いレベルのアウトプットを生み出せるスピード感を持っています。

このため、多くの企業がKagglerを競うように採用しているようです。

企業でのKaggleの位置づけ

インテル(Intel)

インテルは2018年10月、機械学習研究者を募集する広告を出し「Kaggleコンテストでの優勝経験」を要件として挙げました。

ヤフー(Yahoo)

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

フェイスブック(Facebook)

Kaggleでコンテストを実施し、優秀な成果を出した人材への賞として「就職面接のチャンス」を出しました。

ディー・エヌ・エー(DeNA)

2018年4月3日、AI研究開発部門におけるデータサイエンスト強化のための新制度「Kaggle社内ランク」を4月から導入すると発表しました。

Kaggle社内ランク制度は、データサイエンスチームのメンバーに対して業務時間を使ったKaggleへの参加を認める制度です。

「称号」を取得するには?

Kaggleには獲得メダルの色と数によって決定されるGrand master(グランドマスター)、Master(マスター)、Expert(エキスパート)、Contributor(コントリビューター)、Novice(ナビス)の段階があります。

どうしたら称号が貰えるのか確認しました。

称号説明
Novice(ナビス)Kaggleに登録したときにもらえる称号
Contributor(コントリビューター)プロフィールの完成や1stサブミットの実施でもらえる称号
Expert(エキスパート)2つの銅メダルを取得したときにもらえる称号
Master(マスター)1つの金メダルと2つの銀メダルを取得した時にもらえる称号
Grandmaster(グランドマスター)5つの金メダル(チームでも可)および1つのソロ金メダル(1人での参加)を取得したときにもらえる称号

 

とりあえずContributorを目指すか・・・・。

「Cast 1 upvote」は、自身で他のユーザー1人を支持すれば満たされます。

「メダル」を取得するには?

コンペでメダルをもらえる数は、コンペの規模によって変動します。

0~99チーム100~249チーム250~999チーム1000チーム以上
Bronze(銅)上位40%上位40%上位100人上位10%
Silber(銀)上位20%上位20%上位50人上位5%
Gold(金)上位10%上位10人上位10人と0.2%上位10人と0.2%

 

ざっとコンペの参加チーム数を確認すると大半は1000チームを超えています。

つまり「上位10%」に入らない限り、銅メダルも貰えないようです。

私のように入門コンペすら最高で「Top 49%」の人は一生無理では・・・?

想像以上に厳しいです。

「コンペティションの種類」を確認する

コンペティションの種類によってはメダルは貰えないようです。

例えば「InClass」や「Playground」や「Getting Started」コンペではメダルはもらえません。

Common Competition Types

種類立ち位置メダル
Featured困難で一般的に商業目的の予測問題を提起する本格的な機械学習課題あり
Research特集された競技問題よりも実験的な問題あり
Getting Started初心者がまずやるべき。チュートリアルなし
Playground比較的単純な機械学習タスクを提供する競技。初心者が次に取り組むべきものなし

 

私が今まで参加した3つのコンペティションは「Getting Started」です。

次に「Playground」がありますが、こちらもメダルは貰えません。

Other Competition Types

種類立ち位置メダル
Recruitment企業が企画した課題の機械学習モデルを構築なし
Mastersプライベート及び招待性コンペあり
Annual年2回の競技大会あり

 

こちらは特殊なコンペティションです。

メダルが獲得できるコンペか否か確認する

コンペのトップページの「Tiers」部分の表記で確認できます。

例えば、メダルが獲得できるコンペでは、次のような表記です。

一方で、メダルが付与されないコンペでは、次のような表記になっています。

「ポイント」を取得するには?

基礎点として100,000点配られます。ここから参加チーム数、順位、自チーム人数によって、0~1の係数がかかって最終的な獲得ポイントが決まります。

ただしTierに比べあまり重視されることはありません。

己(自身のスキル)を知る

エンジニア活動からも退き、昇格争いからも負けた大手企業の社畜です。

年末年始に他の日本語サイトを見ながら試行錯誤してKaggleの「Getting Started」のランキングは次の通りです。

全然駄目だよね。

そもそも知識もスキルも低いよね。

更に平日は時間が無い・・・・

どうしよ。

Kaggleで上位に入るためには?

セミナーでも受講するか・・と思いましたが、新しいコンペに取り組むごとに本や論文からのinputは必要とのことです。

また、上位の人はたくさんのモデルをうまく組み合わせている(アンサンブルさせている)ようです。

こんなの自分では気づけないよね・・・

 

と思って調べてましたが、フォーラムを見ずに上位を狙うのは「上級者の遊び方」と言い切ったサイトがありました。

つまり、「ディスカッション」と「カーネル(kernel)」はupvoteが多いものを中心に出来るだけ多く目を通す事が上位に上がれるコツのようです。

全く使っていませんでしたが、kaggleには「カーネル(kernel)」という機能があります。

そのコンペで、こういうコードをかいたらうまくいった!

といったような情報共有をしてくれるものです。

先人の知恵を生かしながらコードを書いて行くことでよりスピーディーにスコアを上げることができます。

おすすめの検索方法は、次の方法で絞り込む事だそうです。

competitonページトップ>Kernels>Sort by Most Votes 、Languages→Python、Types→Notebook

 

なお、上位を目指すにはディスカッションやカーネルで議論・公開されている以上のモデルを作る必要があります。

ディスカッション・カーネルでは上位の人や強い人が、そのコンペに関連するとても有用なことを共有し、コンペ参加者はその情報をアレンジして自分のモデルに取り入れています。

上位入賞者はコンペ締め切り間近になると、睡眠時間を削ってkaggleをやるそうです・・・。

まとめ

新年の目標に「Kaggleで銅メダル」と書きましたが、これを狙うと一年間をこれだけに没頭する必要がありそうです。

しかも次のようなコメントもあります。

銅メダルは入るための基準がコンペによってまちまちな印象があるので、これを目指すというのはあまりお勧めしないかも。
どのコンペでも大体誰か優しい人がbeat the benchmark(以下btb)と言われる、基本的なモデリングを行ったSolutionをKaggle Kernelに上げてくれるのですが、銅メダルを目指すよりは、btbを自力で超えられる力をつけるということを目指して結果として銅メダルなどがついてくる方が良さそう。

[引用] 門脇大輔氏のBlog(Kaggle Competitions Master)

個人的に、Top40%以上をコンスタントに取得できるようになれば、自然と機械学習・データ分析の実力はついている気がします。

 - 2020年(社会人16年), 機械学習, テクノロジー

  関連記事

日本のジョブズ、飯野賢治さんの凄さ

90年代、「天才ゲームクリエイター」「時代の寵児」と呼ばれた飯野賢治さん。 私の …

はじめてのKerasを使った株価予測(ディープラーニング)

毎年年末年始やGWに技術学習・Webサイト構築してきたのに、今年は何もしていない …

2020年の日本を予想した1920年の人物を紹介する

今からちょうど100年前の1920年(大正9年)、ジャーナリスト(国粋主義者)の …

機械学習で株価予測(Protraを使ったバックテスト解決編)

前回は「Backtrader」を使って学習済みデータでProtra風バックテスト …

Kaggle の Titanic Prediction Competition でクラス分類(scikit-learn編)

統計学や人工知能(AI)を駆使してデータを分析し、課題の発見や解決に導く「データ …

「あとどのくらいですか?終わりメーカー」作成

今年の「秋分の日」は116年ぶりに9月22日らしく自作の祝日判定プログラムにバグ …

「大企業のほうが成長できるとか完全にウソ」は多分ウソ

とあるサイト「大企業に就職することの本当のメリット5つ、デメリット5つ」によると …

テレビを捨てた放送局、テレビを捨てた家電メーカー

「テレビの視聴者離れが進み、ネットコンテンツが充実し、テレビはオワコン」 と、よ …

PyAutoGuiでWindows操作の自動化(protraシストレ)

もともとProtraはバックテストだけの目的で、手法が確立したら実践ではPyth …

情報処理学会「CVIM研究会」で「卒論セッション」発表

さて、2月頃には提出が決まっていた情報処理学会「コンピュータビジョンとイメージメ …