カレーちゃんブログ

Kaggleや競技プログラミングなどのこと

Kaggle入門その1

kaggleってやってみたいですけど、サイトが英語だったりで少し敷居が高いですよね。

全く初めてだけどkaggleをやってみたいという方に向け、kaggleのサイト構成の説明やカーネルの使い方などからはじめて、タイタニックコンペでのデータの可視化・ランダムフォレストを使っての予測・kaggleへのデータの提出を網羅した「kaggleのチュートリアル」を作成しました。

この本は、4月22日の技術書典で販売し、とても好評いただいたものです。

本編5章 + 付録 のうち、3章までを試し読みとして公開していますので、是非読んでみてください。 また4章とほぼ同じ内容を、https://note.mu/currypurin/n/n05b0a9a6cd94で書いています。

以下は1章と2章の内容の抜粋です。


Kaggleとは

Kaggleとは、企業などがデータを提供し、世界中の参加者(データ分析をする者)がその最適モデルを競い合う、予測モデリング及び分析手法関連プラットフォームです。

企業などは、保有データの分析手法を求めるためにコンペを開催し、データの投稿及び賞金の提供を行います。
参加者は、コンペに参加し、データ分析の腕を競い、参加者同士で情報の交換などを行います。各コンペのページ(Kaggleのサイト上のKernelsやDisscusion)で実際の分析結果の共有や分析手法についての議論がされており、実践的な内容であるため、読んでいるだけでも勉強になります。(多くは英語で投稿されているので、英文を読む必要がありますが、コードと英文がセットなので、意外と読むことができます。)

そのため、データ分析のガチ勢(真剣にデータ分析をやっている強い方たち)にどのようにデータ分析の勉強をすれば良いか聞くと「Kaggleやれ」と返事がくるくらい。
それではKaggleを始めてみましょう。

Kaggleの始め方

Kaggleのサイト(https://www.kaggle.com/)にアクセスします。
右上にあるSign inをクリックすると、以下のようにFacebook、Google、Yahooのいずれかのアカウントでログインするか、新しいアカウントを作るか聞かれるので、お好みの方法でログインします。 f:id:currypurin:20180225235704p:plain

Kaggleの各ページの説明

f:id:currypurin:20180225235808p:plain kaggleにログインすると、上部に次のようなナビゲーションが表示されます。ナビゲーションのうち、よく使う項目は次のような内容となっています。

  • Competitions:現在開催されているコンペや、過去のコンペの一覧
  • Datasets:参加者が公開しているデータセットの一覧
  • Kernels:ブラウザ上からコードを動かすことができる場所。参加者が分析結果を共有しているので、読んでいるだけでも勉強になる
  • Discussion:ディスカッションの場。

コンペのページ(概要)

Kaggleのコンペには、「タイタニックチュートリアル」という初めてKaggleのコンペをやる方向けの、練習用のコンペがあります。まずは、このコンペをやりってみましょう。

Kaggleのトップページから、右上のCompetitionsをクリックし、「Titanic:Machine Learning from Disaster」をクリックして、タイタニックのコンペのページに進みます。

タイタニックのコンペのページに進むと、以下のように「Overview」、「Data」、「Kernels」、「Discussion」、「Leaderboard」、「Rules」、「Team」、「My submissions」、「Submit preditions」というタブが表示されます。 f:id:currypurin:20180226000245p:plain

それぞれの項目では次のようなことについて記載されています。他のコンペでも同様なものが多いです。

  • Overview:文字通り概要が記載されています。Overviewは、更に以下のように細分化されています。
    • Description:コンペについての説明。
    • Evaluation:評価について。どのようなデータを提出し、どのような点数がつけられるか記載されている。
    • Frequently Asked Questions:よくある質問(Getting Started conpetitionとは何か、private lederboarとpubilic liaderboardとは何か、チームの作り方、カーネルとは何か、チームがリーダーボードから消えるのは何故か、サポートへの質問の仕方)。
    • Tutorials:Titanicチュートリアルの進め方。
    • Data:トレーニングデータ、テストデータ、提出データのサンプルファイル及びデータについての説明。
  • Kernels:再現性のある共同分析を可能にするクラウド環境。RおよびPython、Jupyter Notebook、Rmarkdownをサポートしている。参加者が公開している分析結果を閲覧し、コメントをつけることができる。
  • Discussion:コンペについてのディスカッションの場。
  • Leaderboard:コンペの順位表。
  • Rules:コンペの順位が記載されています。チームについてや提出回数(10回まで)等。
  • Team:チームを作るとき使う。
  • My submissions:自分が提出したデータの一覧。
  • Submit preditions:予測を提出するページ。

まとめ

今回はKaggleについての概要を記載しました。
次回は、KaggleのKernelで提出用のデータをつくり、データの提出を行なってみます。