Pythonをある程度身につけ、ようやく機械学習を始めたものの、いつまでたっても入門者用の書籍を追うばかり、もっと実践的に機械学習を使いたいものの、身の回りに機械学習のテーマがなくて困っているという方はいますよね。
そんな、やる気はあるけどネタがないという方にぜひ挑戦してもらいたいのがKaggleです。Kaggle(カグル)とは機械学習の競技会で、様々な企業が機械学習で解決してもらいたい問題を提示しており、その問題の解決方法をユーザー同士で競います。
競技会で優秀な成績を収めると多額の賞金をもらえたり、Googleのような超有名企業からリクルートが来ることもあります。機械学習の勉強だけでなく、こんなに素敵なメリットもあるなんて、チャレンジするしかないですよね!
それでは、今回はどうやってKaggleに参加すれば良いか、また参加して良い成績をとるまでの道のりなどをお伝えします。まずはKaggleについて解説を始めましょう!
Kaggle(カグル)とは
Kaggleとは、Googleが運営している機械学習の競技会サイトのこと。様々な企業が自社では解決が難しい様々な問題を競技会のテーマとして登録し、ユーザーは興味を持ったテーマに取り組む形式を採っています。
各テーマの競技会は「コンペ」と呼ばれ、常に数え切れないほどのコンペが開催されています。「Predict Future Sales(売上の将来予測)」といった初心者でも理解しやすく参加しやすい内容のものから、「University of Liverpool – Ion Switching(イオンチャネルの同時開数予測)」のように一体どのように対応すれば良いのか理解するのも困難なものまで様々なコンペがあるので、自分に合ったコンペを選べるのも魅力です。
Kaggleの参加者のことをKaggler(カグラー)と呼び、現在およそ40万人のKagglerが存在しています。Kaggleに参加するとたくさんのKagglerに出会い、自分一人ではたどり着けない知識や経験を得られるでしょう。
また、他の参加者と連絡を取り合うのは苦手だな・・・という人でも、他の参加者が作成したコードは公開されており読むことができます。優秀なコードを読むことは非常に良い経験となるので、まずはこのような形で参加するのも良いでしょう。
Kaggleの使い方
まずは、Kaggleの公式サイトで無料会員登録をしましょう。Googleアカウントをはじめとした各種SNSアカウントと連携しているので、これらを利用する場合は会員登録の必要もありません。
KaggleはGoogleが提供しているCPUやプログラミング環境を利用してプログラムを実行できます。Kaggleにログインすると、画面左側のメニューから「Notebooks」を開いてください。Notebooksの画面に移ると画面右側に「+ New Notebook」というコマンドがあるのでここからプログラムを作成します。
JupyterNotebookとは機械学習でよく利用される形式で、プログラムの一部ごとに実行できます。実行内容を内部的に保存しているので、何度も同じ計算をさせる必要がなく非常に便利です。スクリプトを選ぶと、.pyファイルを作成することになります。
プログラムが作成できたら実行ボタンを押すだけで実行可能です。ここで嬉しいのは、プログラムの実行がGoogleの環境で行われること。機械学習の実行には非常に高いマシンスペックを要求されます。普段遣いのパソコンがそれほど高スペックでなかったとしても、機械学習を素早く実行できます。
※実際にAIZINE編集部が参加するまでの手順を案内した記事はこちら
Kaggleのコンペの参加方法・難易度
それでは、Kaggleのコンペの参加について解説します。まずはじめに参加するのは、「Titanic: Machine Learning from Disaster」がオススメ。
コンペへの参加は、ホーム画面左側の「Compete」を開き、参加したいコンペを選択するだけです。また、参加したいコンペがわかっている場合は画面上部の検索バーから検索するのが早いでしょう。
※詳しくはこちらでも解説しています
各コンペの難易度を測るには、賞金を確認するのが手っ取り早いと言えます。たくさんの賞金が得られるコンペには参加者が多く、それほど上位に上がるのは難しくなります。また、学習対象が高解像度の画像の場合、機械学習の計算量をいかに抑えるかを意識したプログラミングを行わなければいけないため、難易度は高くなります。
初心者のうちは、Titanicのような入門者用のコンペから参加し、コツを掴んでから簡単そうで知識のある分野のコンペを探して参加すると良いでしょう。
※住宅予測のコンペに参加した記事はこちら
Kaggleをうまく活用するための方法
機械学習のスキルを伸ばす目的で、Kaggleを活用する場合、最もよいのは他人のコードをよく読むことです。Kaggle上で作成されたプログラムはカーネルと呼ばれ、たくさんのカーネルが公開されています。
例えば、検索バーに「Titanic」と打ち込んで検索しましょう。たくさんのカーネルが並んでいるので、どれか興味のあるものを取得します。このようにして取得したカーネルは、自分が作成したカーネルと同じように実行が可能です。
公開されているカーネルの中には、機械学習をレクチャーする内容のものがたくさんあります。与えられたデータセットをどのように観察し、どのような意思を持って前処理を行ったのか、そしてどのような機械学習モデルを組み立てるのかが非常に丁寧に解説されています。
そして、上記のようにして得た知識をもとに実際のコンペに参加しましょう。きっと様々なアイデアが溢れてきて、自分の機械学習のレベルがグッと上がっていることに気がつくでしょう。
Kaggleのコンペで勝つためにおすすめの本
せっかくKaggleのコンペに参加するのなら良い成績を残したいですよね。では、Kaggleコンペに向けて対策をするための書籍について紹介します。
Kaggleで勝つデータ分析の技術
Kaggleに参加するにあたって、最もオススメの本は「Kaggleで勝つデータ分析の技術」です。この本は、タイトルの通りKaggleで機械学習を実践する方法について詳細に書かれ、俗に「Kaggle本」と呼ばれる本の一つです。Kaggleの利用方法や機械学習の基礎について詳しく知りたい場合はこの本を読むことをオススメします。
Python実践データ分析100本ノック
機械学習の工程を大きく分けると、前処理・学習・評価の3つのステップに分けることができます。この中でも特に重要なのが1つめのステップである前処理。「Gavage in, gavage out(ゴミを入れるとゴミしか得られない)」という有名な格言もあるほど、機械学習ではインプット情報をいかに価値のあるものにするかが大切です。
「Python実践データ分析100本ノック」では、この前処理を行うためのテクニックについて詳しく書いてあるので、kaggleで良い成績をとるのに役立つでしょう。
さて、今回はKaggleの概要や活用方法について解説しました。ここまでの内容をまとめると、下記のようになります。
- KaggleはGoogleが開催する機械学習の競技サイト
- コンペの題材には企業が持ち寄ったテーマが利用される
- コンペの優秀者には賞金やリクルートといったメリットがある
- 初心者はTitanic:Machine Learning from Disaster から始めよう
- 他人のカーネルを読んで知識をつけるのがオススメの活用法
- 「Kaggleで勝つデータ分析の技術」と「Python実践データ分析100本ノック」がオススメ
ここまで読めば、Kaggleについての知識は十分です。まずはKaggleに登録し、様々なコンペに参加しましょう!コンペでの優勝も夢ではありません!