Kaggle作成から提出までの流れ|初心者向け_データ分析 #1

1.1 Kaggleにアクセス

今回取り組むのは Titanic: Machine Learning from Disaster | Kaggleです。

これは乗客や乗組員のデータから実際に彼らが事故から「生還したか/生還しなかったか」を予測するという少し残酷なコンペです。船に乗っていた人々のデータからモデルを作成し、生還した可能性が高ければ「1」、残念ながら生還した可能性が低ければ「0」を出力することが目標です。

コンペで公開されているデータセットを見てみましょう。

リンクからページを開くとタイトル下に「Data」というタブがあり、データの詳細を確認することができます。

f:id:lib-arts:20181227182712p:plain

タイタニックコンペで公開されているデータセットはtraining setとtest setの2つです。training setには乗船していた人の個人データと彼らが実際に「生還したか(1)/生還しなかったか(0)」が「Survived」という項目に入力されています。一方test setには別の乗船者達の「Survived」以外の項目のデータが入力されています。

私たちはtraining setから、どのような乗船者が生還し、どのような乗船者が生還しなかったのかという傾向とパターンを見極め、それを元にtest setの乗客たちがそれぞれ「生還したか(1)/生還しなかったか(0)」を自動的に分類するモデルを作成します。

 

1.2 モデル作成にチャレンジ

「Data」タブで表示されるデータ詳細のページを下へスクロールしていくと右端に「Download All」というボタンがあり、私たちのpcのDownloadディレクトリにtrain setとtest setがダウンロードできるようになっています。

データセットがダウンロードできたら「train.csv」と「test.csv」ファイルが入っている場所と同じディレクトリにjupyter notebookのファイルを作成してモデル作りを始めていきましょう。

f:id:lib-arts:20181227183852p:plain

モデル作成の詳細については公開しているgithubに記述しますが、今回は分類モデルの精度そのものよりも機械学習を勉強したことがない方にも理解しやすいようなモデル作りを目指しました。

流れは以下のようになっています。

  • 「生還した乗船者」「生還しなかった乗船者」の傾向をそれぞれつかむ。
  • 可視化したデータに基づいて仮説を立てる。
  • 仮説から生還するか否かを左右しやすそうな要素を取り出して、ロジスティック回帰モデルを作成する。
  • 分類モデルにtest.csvのデータを入力して、test setの乗船者がそれぞれ「生還したか/否か」を予測する。

予測が完了したら、実際にその予測結果をcsvファイルに書き出してKaggleに採点してもらいましょう。

 

1.3 予測結果を採点してもらう(モデルの精度を測る)

Kaggleはすでにtest setの乗船者達がそれぞれ実際に生還したか否かの答えを持っています。

私たちが予測した結果を提出することでKaggleが答えと予測結果を照合し、正答率がどれだけ高いかを数値にしてくれます。

精度の算出方法は「Overview」の「Evaluation」で確認することができます。

予測結果の提出方法はとてもシンプルで、タイトル下タブの一番右の「Submit Prediction」をクリックし、作成したcsvファイルを「Upload Files」へドラッグ&ドロップし、下の「Make Submission」ボタンをクリックすれば完了です。

f:id:lib-arts:20181227182637p:plain

ここまでで分析者が作成したモデルの精度と現在の順位を知ることができます。

今回は初めてKaggleに触れる方向けにデータの取得から提出方法、そしてシンプルなモデル作成方法に触れました。