5
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Kaggleコンペの参加チュートリアル(1.参加編)

Last updated at Posted at 2021-06-15

はじめに

  • 育休中のエンジニアの私が、自宅でのウォームアップと勉強を兼ねてKaggleコンペに参加してみることにしたので、その記録を残したいと思う。
  • 今回は、Kaggleの概略を知り、Begginer向けコンペへ参加することで、基本的な参加方法や使い方を理解することを目指す。

Kaggleについて

  • まずは、Kaggleについて基本的な事項を確認する。

Kaggleとは何か?

  • 世界中から、約40万人のデータサイエンティスト・機械学習エンジニアが集うコミュニティである。
  • 特に「Competetion」(コンペ)が有名である。これは、
    • 企業や政府などが、課題を設定してデータを提供し、機械学習アルゴリズムを開発させて精度を競わせる。
    • 上位3チーム(最大5名まででチーム参戦可能。もちろん1名でもOK。)などに賞金が与えられる。
    • 入賞者は、賞金を受け取る代わりに開発したソースコードなどの権利を依頼元に委譲する。
    • 参加は無料。
    • 上位数十%の成績を残すと、その順位に応じて金・銀・銅メダルが与えられる。
    • 条件を満たすだけのメダルを集めれば、GrandMasterやMasterなどの称号が貰える(大変名誉であり、転職時などに技術力のアピールにもなる。)
      というものである。

Kernelについて

  • Kaggleのコンペの特徴として、「Kernel」(カーネル)というものがある。
  • そのコンペに参加するユーザが、開発したモデルやソースコード(説明つきの場合もあり)を公表する場所である。
  • 初心者は、この「Kernel」で公表されたコードを見たり、触ったり、改良したりして学ぶことができる。
  • 実際にコンペに挑戦してみるとわかるが、自分の思いつくアプローチだけでは精度の限界に(結構早く)ぶち当たる。
  • 他の機械学習コンペと比較した時、「Kernel」を見て上級者のアプローチや工夫点を学べるのが、Kaggleの最大の強みでありメリットと言えると思う。

Kaggleコンペのカテゴリ

  • Kaggleのコンペには、難易度別に以下の7つのカテゴリがある。上にいくほど難易度が易しい(5,6は別枠なので除く)。
    1. Getting Started
      • Kaggleにはじめて参加する初心者向け。半永久的に開催されており、賞金などはない。
      • タイタニックの生存予測、数字認識など。
    2. Playground
      • Getting Startedを卒業した初心者が楽しめるレベルの課題。賞金はなし、もしくは少額。
      • 犬猫分類など。
    3. Featured
      • 最もポピュラーで参加者が多い。商業目的の少し難しい課題で、それなりの額の賞金がつくものが多い。
      • 過去にメルカリの価格予想チャレンジなど。
    4. Research
      • Featuredに次いでポピュラーなカテゴリ。より実験的な問題設定で、基本賞金はなし。
      • Googleのランドマーク検索チャレンジなど。
    5. Recruitment
      • 企業の出す課題に挑戦し、主催者に履歴書を送る権利を得られるコンペ。入賞賞品は基本的に面接権。
    6. Annual
      • Kaggleが定期的に開催するコンペ
    7. Limited Participation
      • めったに行われない、privateまたは招待制で開催されるコンペ。
      • Master、GrandMasterのみが参加できるものなど。
  • 公式の説明はこちら

Kaggleへの参加登録

  • 早速、Kaggle公式トップページの右上「Register」からユーザ登録を行う。
  • 今回は、メールアドレスから登録した。
  • 登録自体はとても簡単で、数ステップで完了する。

    image.png

Kaggleのコンペに参加

参加するコンペの選択

  • 「Competition」のページを開くと、「タイタニックの生存予測」をおすすめされるので、今回はチュートリアルとしてこれにTryする。
  • image.png

ルールの確認

  • コンペには、各々で定められた「Rules」(ルール)がある。
  • 「Join」(参加)にあたって、まずはこのルールの確認を求められるため、内容を読む。
    image.png
  • 今回のコンペでは、ざっと
    • 1人1アカウントであること(複数アカウントでのログインは不可)
    • チーム外へのコードやデータのシェアは禁止。ただし、フォーラムで全参加者が閲覧できる形になっていればOK。
    • チームのMerge(合併)はOK。
    • チームのSize(人数)に制限はなし。
    • 1日の投稿回数は10回まで。最後のJudge用に最大5つの提出が可能。
    • このコンペは、機械学習への参加を支援するもの。タイタニックのデータセットはインターネットで公開されているが、答えを調べると挑戦する意味がなくなってしまうので、それはやめようね。
      という内容。

データの概要確認

  • コンペに参加したら、まずはデータの確認。

  • 学習データセット(train.csv)とテストデータセット(test.csv)が与えられる。

    • 学習データセットには、Ground Truth(正解ラベル。今回であれば、各乗客のdead or alive)がついている。特徴量は与えられたもののほか、特徴量エンジニアリングで新しく生成してもOK。
    • 評価データセットには、正解ラベルはなし。これに対する推論結果を投稿し、精度を競う。
  • この他、投稿ファイルのサンプル(gender_submission.csv)も与えられる。


  • 次に、肝心な各データの内容を確認する。

    image.png

  • 左から、生存フラグ/チケットのclass/性別/年齢/兄弟・配偶者情報/親子情報/運賃/キャビン番号/乗車した港 である。

Goal, Metricの確認

  • コンペにおいて、評価指標は重要である。
  • 一口に分類問題といっても、Accuracyで評価するか、F1スコアで評価するか、などで求めるべき性能が変わってくるためである。
  • 今回は、Accuracyで評価される。
    image.png

LeaderBoardの確認

  • 本当はこのタイミングで見る必要はないが、他のビギナーさん達の実力が気になるので、チラリと「LeaderBoard」を確認する。
  • 「LeaderBoard」は、自分を含む、全参加者のランキングとスコアが表示される。
  • 「Public LeaderBoard」は、testデータセットに対する精度。「Private LeaderBoard」は、非公表のtestデータセットに対する精度である。コンペでは、最終的にこの「Private LeaderBoard」での精度を競うことになる。
  • 今回の課題はどうやら簡単らしく、Accuracy1.0(正解率100%)の参加者がたくさんいるようだ。
    image.png

データのダウンロード

  • 今回は普通にブラウザからダウンロード。
  • Kaggle APIも提供されており、これを使うとコマンド1行でDLできる。
kaggle competitions download -c titanic

最後に

  • キリが良いので、今回はここまで!
  • 次回は「Kaggleコンペの参加チュートリアル(2.前処理~モデル作成編)」で、実際にダウンロードしたデータを学習させる。
5
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?