MotoJapan's Tech-Memo

技術めも

【kaggle①】初心者がタイタニック号の生存予測モデル(Titanic: Machine Learning from Disaster)をやってみる(Titanic概要 ~ データ確認)

昨今取り沙汰されているkaggleに初挑戦してみました~

今回は、初心者向けのTitanicの生存率推定の精度を上げようと挑戦してみた過程を書き残します。
このタスクを通して、日頃は得意なデータや解析手法、機械学習手法しか扱っていなかった自分を戒め、いろいろやってみた経過を書いておきます。

結果

結果からすると、17/06/11 時点で
・精度は、78.974%
・順位は、1777位タイ / 7082 teams
みたいです。
精度は80% over / 順位は3桁目指したいですね。
しかも1人正しく判定できるか否かで全然順位が変わるので、この当たりはかなりひしめき合ってますね。

f:id:motojapan:20170611155133p:plain

Kaggleとは

Kaggleとは、世界最大レベルの機械学習コンペティションプラットフォームで、最近ではgoogleに買収されたことが話題となりました。

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


「Kaggle」『フリー百科事典 ウィキペディア日本語版』より。
"最終更新 2016年9月1日 (木) 03:17" UTC
URL: https://ja.wikipedia.org/wiki/Kaggle

Titanic : Machine Learning from Disasterとは

In this challenge, we ask you to complete the analysis of what sorts of people were likely to survive. In particular, we ask you to apply the tools of machine learning to predict which passengers survived the tragedy.

『Titanic: Machine Learning from Disaster | Kaggle』より。
URL: https://www.kaggle.com/c/titanic

大雑把にいうと、タイタニック号の乗客の情報から傾向を見つけて、彼ら生存率を推定するタスクです。
具体的に、データセットは、train.csv(train用) / test.csv(submit用) の2つが存在し、
test.csvは、Survivedのみ情報が欠落しているため、これを推定して、KaggleサーバーにSubmitするというのがゴールになります。
データセットの詳細は次に。


0.環境とソースコード

私の環境は次の通り。
Python 3.4.3 |Anaconda 2.3.0 (64-bit)| (default, Mar 6 2015, 12:06:10) [MSC v.1600 64 bit (AMD64)] on win32
(・お好みでseaborn)
・IPython notebookで作業

ソースコードGitHub
github.com

1.モジュールロード

よく使うのものは早めにコールしておきます。

#load module
import csv
import pandas as pd
%matplotlib inline
import matplotlib.pylab as plt
import seaborn as sns # it's up to you
import numpy as np
sns.set_style("whitegrid")

2.データセットについて

まずデータセットの中身を確認
これで大雑把に把握

SRC_TRAIN = '../data/train.csv'
df_train = pd.read_csv(SRC_TRAIN)
df_train.head(8)

f:id:motojapan:20170611160809p:plain

それぞれの詳細なデータの説明は次の通り。
f:id:motojapan:20170611160900p:plain


へぇ~って感じですね。
やるべきことはこのデータを解析して、足りないデータを補ったり、特徴量を選んだり、新たに作ったり、
機械学習手法を選んだり、ハイパーパラメータを設定したり、、、、って感じで精度の高い判別器をつくります。


お腹がすいて集中力が切れたので本日はここまで。


次は、具体的なデータ解析を書き残します。