Help us understand the problem. What is going on with this article?

パワーアップしたKernelでKaggleに飛び込もう

More than 3 years have passed since last update.

はじめに

Kaggleって、初めての人にはちょっと敷居が高いですよね。
私も「猛者ばかり集まっていて辛い」「初心者だと戦えないだろうからまだ使わなくていいや」という印象でアカウントは作ったもののしばらく使っていませんでした。

しかし、最近Kaggleのコンペに参加してみようという社内の有志の集まりがありチャレンジして見たところ、やはり学びが多くて面白く、これからはもっと使ってみようと考えるようになりました。

そこで、まだKaggleを使ったことがない人向けの取っ掛かりとして、この記事を書いて見ることにしました。

最近KaggleのKernelがパワーアップした

KaggleにはKernelという機能があり、自分で環境を用意しなくてもブラウザ上で簡単にコードを実際に動かすことができます。さらにそれを公開できるようになっており、他のコンペ参加者とコードを共有することができます。(もちろん非公開のまま使うことも可能)

簡単な処理であれば手軽に動かせることは大きなメリットですが、やはりマシンパワーが必要な処理を呼び出す場合には厳しく、一つの処理で20分でタイムアウトしてしまうため、少し時間のかかる処理には使用できないという欠点がありました。
しかし、最近リソースが増えて、使い勝手が良くなりました。

Kobito.C3EZCh.png

http://blog.kaggle.com/2017/09/21/product-launch-amped-up-kernels-resources-code-tips-hidden-cells/

4CPU,、メモリ16GBが使えるというだとローカルの環境で動かすよりも速いという場合もあるかもしれません。環境準備が不要でこれだけのリソースが使えるというのは大きな進歩ではないでしょうか。

タイタニックのコンペに参加する(下準備)

kaggleのアカウント作成後、まずはkaggle入門用に用意されている下記のTitanicのコンペに参加します。

Titanic: Machine Learning from Disaster
https://www.kaggle.com/c/titanic

Join Competitionを押すと、コンペへの参加が完了です。

Kobito.n2wNct.png

※上記のスクリーンショットは別のコンペのものです。

Kernelを使って分析を始めてみる

右上にKernelsというリンクがありますので、これを選びます。
Kobito.vepVhP.png

New Kernelを押して新しくKernelを作ります。Script/Notebookどちらでも好きな方でOKですが、まずはJupyter Notebookが使えるNotebookを選択して見ましょう。

Kobito.p9Wu0U.png

分析対象のデータソースを選ぶためAdd Sourceをクリックします。「Competition」の中から、先ほどのタイタニックのコンペを検索し選びます。

Kobito.gerUVg.png

セルに入力されたコードを実行してみると、「../input」のディレクトリ内にデータソースのファイルがあることがわかります。こちらのファイルを分析に使用していきます。

Kobito.eOwVHZ.png

様々な方がこのタイタニックのデータでの分析の方法を記事にされていますので、この記事では割愛します。
機械学習が初めての方は、下記のような記事を参照して動かして、予測結果を出してみてください。

タイタニック号乗客の生存予測モデルを立ててみる
https://qiita.com/suzumi/items/8ce18bc90c942663d1e6

Kaggleでタイタニックの生存者を予測をしてSubmitしてみた
https://qiita.com/teru855/items/02bd885179bd8e39ba43

タイタニック生存者予測Tutorialの一覧
http://kagglechallenge.hatenablog.com/entry/2015/02/13/193155

注意点1:データソースのディレクトリ

ローカル環境でJupyter notebookを使う場合との違いを注意点として記載します。

1点目はデータソースのある場所です。
すでに書いてしまいましたが、 「../input」のディレクトリ内に分析対象のデータソースのファイルが置かれますので、ここからデータを読むようにします。

df= pd.read_csv("../input/train.csv")

注意点2:結果の出力方法

2点目は結果の出力先についてです。
まずはcsvファイルとしてカレントディレクトリに出力します。

その後Notebook 編集中画面から、右上のPublishを押すとKernelのメニュー画面に戻ります。そこに Output タブが出てきて、出力したcsvファイルが見えるようになります。

Kobito.kTRtyx.png

しかし、Publishを押した直後はすぐにタブが現れないようです。
Outputのタブが出ない場合は、少し待ってページをリロードしてみてください。

この出力したcsvファイルをDownloadして、コンペのページに戻りSubmitすることで、あなたの名前がLeaderboardに載り、順位がわかります。

まとめ

KaggleのKernelを使うことで、上記のように非常に簡単に機械学習を始めることができます。

この記事では書きませんでしたが、コンペの中では様々な人が試行した内容をKernelとして公開しており、そのKernelをフォークして自分で動かしたり、編集したりすることもできます。

環境構築やデータ準備などの面倒な部分をすっ飛ばして始めることができますので、是非試してみてください。

jagainu
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away