機械学習・ディープラーニングがゼロから学べる大人気『脱ブラ』が無料に!

Kaggle とは?始め方や入門「タイタニック問題」も紹介!

Kaggle とは

この記事はこんな方にオススメです
  • データサイエンスや機械学習に興味のある方
  • データサイエンスコンペティションに参加してみたいが、方法がわからない方
  • 実装力を高めたり、知識を深めたい方

こんにちは、機械学習講師の竹内です。
皆さんはデータサイエンスのコンペティションに参加したことはありますでしょうか。コンペティションでは世界中のデータサイエンティストが精度や実装力を競い合い、好成績を残した方は賞金や実績、名声を得られます。

今回はデータサイエンスコンペティションサイトとして最も有名な Kaggle についてご紹介します。またチュートリアル問題の「タイタニック問題」についても紹介します!ぜひ御覧ください!

Kaggle とは

kaggle
出典:Kaggle Competitions

Kaggle は約 100 万人以上の方が利用している世界最大のデータサイエンスコンペティションプラットフォームです。2010 年にサービスを開始し、2017 年には Google が Kaggle 社を買収したため、Google 傘下の企業となりました。Kaggle は「カグル」と呼ばれ、Kaggle に参加している人を「Kaggler(カグラー)」とも呼びます。

Kaggle では企業や政府等がコンペティション形式で課題を提示しています。各コンペティションの開催期間は約 2~3 ヶ月程で、成績によって参加者は金メダル・銀メダル・銅メダル・その他に分けられます。

さらに賞金が設定されているコンペティションであれば、最上位の成績を収めた数名(数チーム)の参加者には賞金が与えられます。

コンペティションを開催している企業は様々で、日本の企業ではメルカリ社リクルート社等が開催しています。また、賞金額の大きかったコンペティション(アメリカの国土安全保障省が主催)では、賞金総額が 150 万ドル(約 1 億 5 千万円)だったものもあります。

compe
出典:Passenger Screening Algorithm Challenge

注意
賞金が設定されていないコンペティション(Knowledge(知識)・Swag(記念品)・Kudos(名誉))も数多く存在します。

Kaggle の使い方

まずは Kaggle へ登録してみましょう。登録の手順は以下です。

step1
Kaggle にアクセス
step2
右上の Register をクリック
step3
Google アカウント、またはメールアドレスで登録

登録が完了すると、下図のトップページにアクセスできます。

top

Kaggle には様々な機能があります。今回はコンペティションに参加する上で知っておきたい機能についてご紹介します。

  • Kaggle Rankings
  • Kaggle におけるランキング表を確認できます。

  • Competitions
  • Kaggle で開催されているコンペティションを確認できます。

  • Datasets
  • Kaggle 上で共有されているデータセットを確認できます。

  • Code (Notebook・Kernel)
  • クラウド上でコードを実行できる環境が使用できます。

  • Discussion
  • コンペティションの内容に関わる議論ができる掲示板を確認できます。

Kaggle Rankings

User Rankings

Kaggle にはランキングや称号制度があります。
こちらは左の「More」の中にある「User Ranking」から確認できます。

Kaggle_Rankings
出典:Kaggle Rankings

「Rank」がランキング、「Tier」が称号を表しています。ランキング・称号は以下のカテゴリで設定されています。

  • Competitions
  • コンペティションにおける成績によって決まります。

  • Datasets
  • Dataset への賛成票数によって決まります。

  • Notebooks
  • Notebook への賛成票数によって決まります。

  • Discussion
  • Discussion への賛成票数によって決まります。

ランキング制度では、コンペティションの順位や、Dataset・Notebook・Discussion における Vote (賛成票)の獲得数によってポイント付けが行われ、そのポイント数によって順位付けされます。

称号制度は、主にメダルの数によって決まります。メダルはコンペティションの順位や、Dataset・Notebook・Discussion における Vote 数によって獲得できます。
称号には以下の 5 つの位があり、上位の称号を獲得することをモチベーションに参加している Kaggler は多いです。

  • Grandmaster
  • Master
  • Expert
  • Contributor
  • Novice

ランキング・称号制度について、詳しく知りたい方は Kaggle Progression System を参照してください。

Competitions

competitions-min
出典:Kaggle Competitions

コンペティションに関する情報が掲載されているページです。「Active Competitions」では現在開催されているコンペティションを確認できます。各コンペティションをクリックすると、コンペティションページへ遷移します。

titanic
出典:Titanic – Machine Learning from Disaster

コンペティションページでは、コンペティションの概要 (Overview) やデータセット (Data)、Notebook (Code)、コンペに関する Discussion、現在の順位とスコアが確認できる Leaderboard やルール (Rules) を確認できます。

Datasets

datasets
出典:Kaggle Datasets

Kaggle にはデータセットを共有する機能があります。Kaggle アカウントを持っている人であれば、誰でもデータセットを追加・公開したり、他の人が公開したデータセットをダウンロードできます。データセットをプレビューするだけであれば Kaggle アカウントは不要です。

データセットには投票機能 (Vote) がありますので、良いデータセットがあったら提供してくれた方への感謝を込めて投票しておきましょう。

datasets_sample
出典:2021-olympics-in-tokyo

また各データセットには、「Metadata」にライセンスが明記されており、どのようにデータを活用できるかがわかります。

Code

code
出典:Kaggle Code

Kaggle では、クラウド上で Jupyter Notebook の実行環境を利用できます。昔は Kernel や Notebook と呼ばれていたため、人により呼び方が違うことが多いです。(本記事では Notebook で統一しておきます。)

コンペティションで提供されたデータを分析して可視化をしたり、予測値を算出できます。コンペティションとは無関係なデータの分析もできます。

new_notebook

「+ New Notebook」 をクリックすることで、新しい Notebook を作成できます。

notebook

作成した Notebook は「Your work」から確認できます。

また Notebook の内容は、右上の「Share」にて他の人に公開可能です。

share

公開されたコードに投票 (Vote) が一定数以上得られるとメダルを獲得できます。

Discussion

Discussion は、コンペティションの内容に関わる議論をする掲示板です。

Discussion
出典:Kaggle Discussion

Discussion では以下のような内容が投稿されています。

  • 初心者からの質問
  • ルールに関する質問
  • 知見や手法についての議論

Discussion も Dataset や Notebook と同じく投票機能 (Vote) がついており、一定数以上の Vote を得られるとメダルを獲得できます。

コンペ参加 → 投稿までの流れ

それでは Kaggle のコンペティションに挑戦してみましょう。具体的なステップは以下となります。

step1
開催中のコンペティションから参加したいものを選択
step2
参加規約へ同意
step3
データと提出ルールの確認
step4
学習モデルの作成、提出用ファイルの作成
step5
提出用ファイルを投稿
step6
評価の確認
1 つずつ見ていきましょう。

STEP 1 : 開催中のコンペティションから参加したいものを選択

competitions-min

こちらのページから参加したいコンペティションを探してみましょう。本記事ではチュートリアルとして最も有名な「タイタニック問題」を扱います。

titanic
出典:Titanic – Machine Learning from Disaster

STEP 2 : 参加規約へ同意

どのコンペティションにも規約・ルールが存在します。コンペティションに参加する前には参加規約に同意する必要があります。「Rules」タブの文章を確認してみましょう。

rules

こちらで参加規約を確認できます。
参加規約には以下の内容が記載されています。

  • 複数のアカウントを保持することの禁止
  • private sharing の禁止(チームメンバー以外に Kaggle の Code や Discussion 以外でコードを共有すること)
  • チームを組むことの可否やチームメンバー数の制限
  • 1 日の提出回数の制限
  • コンペティションの期限

規約を守らないと、参加者から除外されたり、入賞時の賞金の権利が得られない可能性もありますので注意しましょう。

STEP 3 : データと提出ルールの確認

data

「Data」タブを選択し、一番下を見ると、「Download All」のボタンがありますので、こちらからデータをダウンロードしておきましょう。

MEMO
Kaggle 上の Notebook を使用する際はダウンロードは不要です。

また「Data」タブでは各データの集計・可視化の結果も確認できます。この機能がかなり便利です。

評価指標や提出方法については「Overview」タブの「Evaluation」で確認できます。

overview

今回の評価指標は Accuracy(正解率)であることがわかります。
また提出方法として、ファイルには PassengerIdSurvived の列が必要であることもわかりました。

STEP 4 : 学習モデルの作成、提出ファイルの作成

code_new_notebook

それではモデルを作成していきましょう。Kaggle の Notebook を使用する場合は「New Notebook」のボタンをクリックしてください。新しいノートブックを作成できます。
またコンペティションページからノートブックを作成すると、使用するデータが読み込める状態になっていますので、そのままモデルを作成できます。

data_

データは Pandas の read_csv() 関数を使用して読み込めます。

pandas

STEP 3 で確認したルールに沿って提出ファイルを作成しましょう。

また GoogleColaboratory やローカル環境でモデル作成を行う場合は、一度データをダウンロードしてから行いましょう。

GoogleColaboratory を使用される方はこちらの記事も参考にしてみてください。
【最新版】Google Colaboratory とは?使い方・メリット・設定などを徹底解説!

STEP 5 : 提出用ファイルを投稿

submission

提出用の CSV ファイルが作成できたら投稿してみましょう!トップページの「Submit Predictions」ボタンをクリックするとファイルを選択する画面に遷移します。提出用の CSV ファイルを選択し投稿しましょう。(今回は 1 日 10 回までしか投稿できませんので注意してください。

STEP 6 : 評価の確認

public_leaderboard
出典:Titanic Leaderboard

予測値を提出したら、Public Leaderboard にて自分の順位を確認しましょう。Public Leaderboard の結果はテストデータの一部で評価された結果であることが一般的です。(タイタニック問題は Public Leaderboard にてすべてのテストデータに対する結果が表示されています。)

Public Leaderboard で使用したデータ以外で評価された順位は Private Leaderboard に表示され、こちらはコンペティション終了後に発表されます。つまり最終順位は Private Leaderboard にて確定されます。

このようなシステムにしておくことで、何回も提出して最終順位がよくなるように調整するといった行為ができないようになっています。

英語が苦手な方へ

ここまで Kaggle の使い方や投稿方法についてお伝えしてきました。

参加方法はわかったけど、英語が苦手だから取り組みにくい…

Kaggle は日本語に対応していませんので、このような悩みを抱えた方もいらっしゃるかもしれません。英語が苦手な方は、まずはこちらの 2 つを見てみてください!

  • DeepL
  • 高精度な機械翻訳ツール

  • SIGNATE
  • 日本版 Kaggle とも呼ばれるコンペティションサイト

DeepL

DeepL

出典:DeepL翻訳:世界一高精度な翻訳ツール

DeepL は機械翻訳ツールです。機械翻訳ツールは Google 翻訳など、様々なサービスがありますが、DeepL はかなり高精度な翻訳が可能です。

英語を読むことに慣れていない方は、DeepL を使用して挑戦してみてください!

SIGNATE

SIGNATE
出典:TOP | SIGNATE

SIGNATE は、日本版 Kaggle とも呼ばれる、2018年4月にオープンしたAI開発コンペティションサイトです。こちらは日本の企業が運営していますので、すべて日本語で記載されています。

今回ご紹介した「タイタニック問題」は SIGNATE にも掲載されていますので、まずは SIGNATE を使ってみるのもよいでしょう。

titanic_signate
出典:SIGNATE Titanic

SIDNATE の使い方やコンペティションへの参加方法は、こちらの記事を参考にしてください。
SIGNATE とは?コンペの参加方法や Kaggle との違いも解説!

最後に : 知識も実装力も実績も獲得しよう!

いかがでしたでしょうか。コンペティションに初めて投稿できるとかなり達成感がありますので興味のある方はぜひ挑戦してみてください!

  • 自分の知識を深めたい!
  • 自分の実装力を試してみたい!
  • 実績を残して転職へのきっかけとしたい!

上記の方は今すぐ参加できそうなコンペティションを探して挑戦してみましょう!