フューチャー技術ブログ

Kaggle入門

春の入門祭りの第11弾です

はじめに

TIGの伊藤真彦です、第10弾に続いての投稿です。

フューチャーではAI教育・認定のオリジナルプログラムFuture AI Certificationが実施されています。私も入社早々に本プログラムでGoogle Colaboratoryを用いてノートブック形式でのドキュメントを作成、実行する形での学習しました。入社以前からAI関連の技術に興味を持っており、AWSの機械学習認定資格に合格するなど勉強していたので、とても嬉しかったです。

このFuture AI Certificationプログラムで学習した勢いで、この度Kaggleにチャレンジしてみました。

この記事の内容

実際にKaggleに挑戦する上で自分が知りたかったこと、やってみたことを書いていきます。

kaggleとは

Kaggleは企業や研究者がデータを投稿し、世界中の統計家やデータ分析家がその最適モデルを競い合う、予測モデリング及び分析手法関連プラットフォーム及びその運営会社である。
wikipediaより

Kaggleは機械学習のモデルを作成・共有し、その機械学習モデルの精度を競い合うプラットフォームです。環境構築不要で機械学習を学習できるだけでなく、賞金付きのコンペティションで上級者が鎬を削り合うような場所でもあります。

まずはアカウント登録が第一歩です。

タイタニック問題に挑む

アカウントを登録したら次に何をするか?

いきなり賞金つきコンペティションに突撃する事も可能ですが、初心者向けの学習用コンテンツがあるので、まずそれに参加して流れを掴んでいきます。

定番の問題として「タイタニック問題」と呼ばれている問題があります。「タイタニック」とは1912年に沈没した豪華客船のタイタニック号のことです。映画にもなったのでご存じですよね、と言いたいところですが映画の初公開は1997年、そろそろ映画を見た事がない人が入社しても不思議ではないですね。

タイタニックと機械学習のどこに接点があるかと言うと、Kaggleではタイタニック号の乗客の年齢、性別、客室番号などの各種データと、生存、死亡のデータがcsvファイルにまとめられています。このcsvから学習して、各種データから乗客の生存・死亡を推論する機械学習モデルを作成する事が初心者向けの課題として用意されています。

アカウントを登録したら、タイタニック問題に挑戦するのが定番の流れです。

実際の作業

コンペティションに参加登録をしたら、実際に機械学習モデルを作成していきます。

とはいえ機械学習のことはよくわからないし、何をどうしたら課題を達成できるのか…と、初心者の方は思うのではないでしょうか。

Kaggleでは他の参加者のノートブック形式での成果物が公開されているので、極論公開されているコードを写していくだけで課題の提出が可能です。

最初は写経のような形で公開されているソースコードを読み解いていくと良いと思います。

学習のために

機械学習のモデル作成では、以下の流れでソースコードを記述していきます。(csvデータを読み込んで推論を行う、いわゆるテーブルコンペと呼ばれる形式の話で、例えば画像を取り扱うような問題では違った流れになります)

  1. csvデータを読み込む
  2. データの欠損値を補完する、機械学習モデルが読み込める形にデータを変換する。
  3. 整理したデータで機械学習モデルを学習させる。
  4. 作成したモデルでテストデータを推論、提出用のデータを生成、保存する

公開されているソースコードは、ランキングの上位に食い込むためにさまざまな工夫が行われています。また、データエンジニアリングの内容や根拠を説明するためにデータをグラフとして表現するコードも各々のスタイルで記載されています。いきなりこれら工夫満載の成果物を見ても理解が難しいと思います。

私は「PythonではじめるKaggleスタートブック」という書籍を購入しました。

この記事の結論はオススメ書籍の紹介になります。この本ではタイタニック問題を回答できるようになることが目的の一つとなっており、実際にタイタニック問題に対して提出可能なソースコードが、最低限の素朴な実装の段階から、精度を上げていくための工夫まで、Python初心者レベルの人でもわかるよう一行ずつ丁寧に説明されています。

この本のおかげで学習がかなり楽になりました。こういう知識はやはり書籍の形式で体系的に学ぶのが楽ですね。あとKaggleは基本的に英語なので…ただでさえ難しいものを英語で学習するのは辛いものがあります。日本語で学べる教材という意味でも良かったです。

まとめ

  1. まずはアカウントを登録しよう
  2. タイタニック問題にチャレンジ
  3. 公開されているコードから学んでいこう
  4. 効率よく学ぶためには本を買うのがおススメ

といったお話でした。

きちんと理解しようとすると一問に費やす時間が数日単位でかかり、結構大変なのですが、Kaggleを通して機械学習の流れが具体的にわかるようになってきました。

Kaggleは無料でできるので、ぜひ挑戦してみてください。