人工知能と競プロやってくブログ

深層学習・機械学習・AI・atcoder・競技プログラミングについて調べてやってみたことをまとめるブログです

Kaggleのタイタニック号コンペのデータを分析してみる

Kaggleコンペのチュートリアルタイタニック号のデータを機械学習にかける前に自分で分析してみましたよ。

分析してみた結論

Kaggleのタイタニック号のコンペの内容は、乗員の年齢、性別、座席、チケット代などの属性から、沈没事故で生き残ったかどうかを予測するというモノ。
機械学習用の教師データと、それから学習したモデルで予測するテストデータが入っている。

この教師データから、どんな傾向が見られるかをPythonで集計して調べてみました。
唐突に結論を言えば、僕が見たところ、高い金出した客が生き残っているという傾向が見られる。 あとは生き残り確率の高い年齢層が存在するというのが大きな傾向かと思います。

分析

タイタニックの教師データの項目は次のモノ。

項目 意味
PassengerID 乗客ID
Survived 生存結果 (1: 生存, 2: 死亡)
Pclass 乗客の階級 1が一番位が高い
Name 名前
Sex 性別
Age 年齢
SibSp 兄弟、配偶者の数
Parch 両親、子供の数
Ticket チケット番号
Fare 乗船料金
Cabin 部屋番号
Embarked 乗船した港。Cherbourg、Queenstown、Southamptonの3種類

Pythonで集計した要点を貼っていく。

Pclass(乗客の階級)との関連

f:id:uchidamax:20180507204035p:plain

f:id:uchidamax:20180507204044p:plain

Pclassが1が一番等級の高い乗客ですが、1だと生き残り確率が62.96%と他より高い。

年齢との関連

f:id:uchidamax:20180507204359p:plain

f:id:uchidamax:20180507204401p:plain

0才〜5才が70%を超える生存率。おそらく優先的に救命ボートに乗せられたのだろう。

乗船料金との関連

f:id:uchidamax:20180507204634p:plain

f:id:uchidamax:20180507204640p:plain

51ポンド以下は31.83%の生存率で、他より明らかに低い。
チケットが高い乗客が優先的に救命ボートに乗ったであろうと思われる。

部屋番号との関連

f:id:uchidamax:20180508005822p:plain f:id:uchidamax:20180508005827p:plain

部屋番号あり無しで生存数、生存率を集計。部屋番号が無いグループは生存率29.99%、ある場合は66.67%。
部屋番号があるグループはチケット代が高く、優先的に救命ボートに乗ったと思われる。

この結論に至るまでの分析コードが以下。

ソースコード

参考

qiita.com

参考になりました!ありがとうございますー。

Titanic: Machine Learning from Disaster | Kaggle

追伸

なーんとなく二ヶ月くらい書かなかったなぁ。
Kaggleのコンペも結構やってみたい気持ちはあるから、そろそろやってみようかなぁ。