以前にもちょろっと取り上げたんですが、kaggleという技術コンペがあります。
Kaggle: Your Machine Learning and Data Science Community
今まで実務で忙しかったんで後回しにしていたんですが、退職して時間に余裕ができたんで登録してみました。
kaggleの登録方法は以下の本に詳しいです。
- 作者:坂本 俊之
- 発売日: 2019/10/22
- メディア: 単行本
で、kaggleでは、初心者のためにタイタニックのテストデータが与えられています。あの有名なタイタニック号の客のデータです。今回はkaggle上でそのデータをちょこちょこみていきましょう。(ほぼほぼ自分用のメモ)
import pandas as pd
from pandas import Series, DataFrame
データ挿入
os.chdir('../input/titanicdataset-traincsv')
print(os.getcwd())
titanic_df = pd.read_csv()
titanic_df.head()

いきなりこんなの出されても大変だったので、列の説明をつけます。
カラム(列)の説明
PassengerId
乗客のID
Survived
生存したかどうか。0は亡くなった方、1は生還できた方
Class
客室のクラス。1が一番高級。
SibSp
シブリングス。兄弟姉妹のこと。1なら兄弟姉妹と一緒に乗船したということ。
Parch
ペアレント、子供の略。シブリングスと同じ
Fare
チケットの値段。
Cabin
キャビンがいたところ。Nanはなしということ。
Embarked
どこの港から乗船したか。
だいたいこんな感じ。一口に乗客といってもデータは多いですねぇ。。
(さらに情報を見てみる場合は titanic_df.info()で)
タイタニック号の乗客はどんな人だったのか?
さらに情報を見てみましょう。性別は、、
import numpy as np
import matplotlib.pyplot as pot
import seaborn as sns
sns.countplot('Sex', data=titanic_df)

男性客が2倍近く。
タイタニック号は客室にクラスがあります。客室ごとの性別は、、
sns.countplot('Sex', data=titanic_df, hue='Pclass')
(もちろん、PclassをEmbarkedに変えても違うインサイトが得られる)
で、これをみると、

3等客室の男性客が異常ですね笑。ということは独身で単身客ではないかという仮説が出てきます。そこで子供を見ていきましょう。
カラムには子供、という概念はないので、未成年としておくと、、
def male_female_child(passenger):
age, sex= passenger
if age < 20:
return 'child'
else:
return sex
これを使って、新しいカラムを付け加える。
titanic_df['person'] = titanic_df'Age','Sex'.apply(male_female_child, axis=1)
titanic_df.head(10)

客層ごとで見てみると、、
sns.countplot('Pclass', data=titanic_df, hue='person')

これをみると、他の客層に比べて3等室は独身者が多そう。。。
より細かい年齢層のヒストグラムは、、
titanic_df['Age'].hist(bins=70)

平均年齢
titanic_df['Age'].mean()
titanic_df['person'].value_counts()

こんな感じでした。udemyでのパクリなんですが、これだけでも十分値段の価値がありましたわ。
参考
Online Courses - Learn Anything, On Your Schedule | Udemy
「18万人が受講〜」