tropicbirdのブログ

備忘録です。

【kaggle】タイタニックのコンペ(3)

Kaggleで定番のタイタニック号の生存者の分析をPythonで行う記録。

↓コンペのサイトはここです。
Titanic: Machine Learning from Disaster | Kaggle

Pythonによる分析の一例をManav Sehgalさんのカーネルを参考に(と言いうかこれに沿って)行います。
↓Manav Sehgalさんの分析手順はここで確認ができます。
Titanic Data Science Solutions | Kaggle

12.定量的属性データの特徴を確認する。
#describe()メソッドで定量的属性データの特徴が分かる。
In [25]: train_df.describe()
Out[25]:
       PassengerId    Survived      Pclass         Age       SibSp  \
count   891.000000  891.000000  891.000000  714.000000  891.000000
mean    446.000000    0.383838    2.308642   29.699118    0.523008
std     257.353842    0.486592    0.836071   14.526497    1.102743
min       1.000000    0.000000    1.000000    0.420000    0.000000
25%     223.500000    0.000000    2.000000   20.125000    0.000000
50%     446.000000    0.000000    3.000000   28.000000    0.000000
75%     668.500000    1.000000    3.000000   38.000000    1.000000
max     891.000000    1.000000    3.000000   80.000000    8.000000

            Parch        Fare
count  891.000000  891.000000
mean     0.381594   32.204208
std      0.806057   49.693429
min      0.000000    0.000000
25%      0.000000    7.910400
50%      0.000000   14.454200
75%      0.000000   31.000000
max      6.000000  512.329200

#トレーニングデータセットの標本数は891名である。全体の標本(クルーと乗客の合計)2,224名のうち、約40%の標本であたる。
#生死に関する属性データは1と0である。
#トレーニングデータセットでは約38%が生き残ったが、実際の全体の生存率は約32%である。
#SibSp – タイタニックに同乗している兄弟/配偶者の数
#ほとんどの乗員乗客(75%以上)は親と子供が同乗していない。(parch – タイタニックに同乗している親/子供の数)
#約30%の乗客には姉妹兄弟がいる。
#運賃は乗客によって大きく異なる。50%が14ドル以下だが、最高は512ドル。
#高齢者も少数含まれる。

#パーセンタイルを設定することで、任意の区切りが可能。
In [27]: train_df.describe(percentiles=[.1, .2, .3, .4, .5, .6, .7, .8, .9, .99])
Out[27]:
       PassengerId    Survived      Pclass         Age       SibSp  \
count   891.000000  891.000000  891.000000  714.000000  891.000000
mean    446.000000    0.383838    2.308642   29.699118    0.523008
std     257.353842    0.486592    0.836071   14.526497    1.102743
min       1.000000    0.000000    1.000000    0.420000    0.000000
10%      90.000000    0.000000    1.000000   14.000000    0.000000
20%     179.000000    0.000000    1.000000   19.000000    0.000000
30%     268.000000    0.000000    2.000000   22.000000    0.000000
40%     357.000000    0.000000    2.000000   25.000000    0.000000
50%     446.000000    0.000000    3.000000   28.000000    0.000000
60%     535.000000    0.000000    3.000000   31.800000    0.000000
70%     624.000000    1.000000    3.000000   36.000000    1.000000
80%     713.000000    1.000000    3.000000   41.000000    1.000000
90%     802.000000    1.000000    3.000000   50.000000    1.000000
99%     882.100000    1.000000    3.000000   65.870000    5.000000
max     891.000000    1.000000    3.000000   80.000000    8.000000

            Parch        Fare
count  891.000000  891.000000
mean     0.381594   32.204208
std      0.806057   49.693429
min      0.000000    0.000000
10%      0.000000    7.550000
20%      0.000000    7.854200
30%      0.000000    8.050000
40%      0.000000   10.500000
50%      0.000000   14.454200
60%      0.000000   21.679200
70%      0.000000   27.000000
80%      1.000000   39.687500
90%      2.000000   77.958300
99%      4.000000  249.006220
max      6.000000  512.329200
13.定性的属性データの特徴を確認する。
#includeに対応するアルファベットをO(オー)にすれば、
#カテゴリカルデータの特徴を知ることができる。
In [32]: train_df.describe(include=["O"])
Out[32]:
                               Name   Sex    Ticket Cabin Embarked
count                           891   891       891   204      889
unique                          891     2       681   147        3
top     Becker, Miss. Marion Louise  male  CA. 2343    G6        S
freq                              1   577         7     4      644

#全員異なる名前を持つ。
#男性は65%(577/891)。
#出港地は3種類あり、Sが最も使われた(644/889)。
#チケットの22%は重複した名称を持つ。