エビデンスで教育を考えた

頭が良くなる科学論文を紹介していきます。お勧め商品は楽天ルームで!https://room.rakuten.co.jp/room_12b7a40f6d/items

データサイエンスの基礎〜タイタニックの乗客〜

f:id:mathlikeB:20201010150213j:plain

 以前にもちょろっと取り上げたんですが、kaggleという技術コンペがあります。
Kaggle: Your Machine Learning and Data Science Community



今まで実務で忙しかったんで後回しにしていたんですが、退職して時間に余裕ができたんで登録してみました。

kaggleの登録方法は以下の本に詳しいです。

データサイエンスの森 Kaggleの歩き方

データサイエンスの森 Kaggleの歩き方


 で、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()


f:id:mathlikeB:20201010150038p:plain

いきなりこんなの出されても大変だったので、列の説明をつけます。

カラム(列)の説明
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)



f:id:mathlikeB:20201010150606p:plain


男性客が2倍近く。

タイタニック号は客室にクラスがあります。客室ごとの性別は、、

sns.countplot('Sex', data=titanic_df, hue='Pclass')

(もちろん、PclassをEmbarkedに変えても違うインサイトが得られる)

で、これをみると、


f:id:mathlikeB:20201010150946p:plain

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)


f:id:mathlikeB:20201010151120p:plain
客層ごとで見てみると、、
sns.countplot('Pclass', data=titanic_df, hue='person')


f:id:mathlikeB:20201010151134p:plain


これをみると、他の客層に比べて3等室は独身者が多そう。。。

より細かい年齢層のヒストグラムは、、
titanic_df['Age'].hist(bins=70)


f:id:mathlikeB:20201010151252p:plain

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


f:id:mathlikeB:20201010151311p:plain

titanic_df['person'].value_counts()

f:id:mathlikeB:20201010151325p:plain


こんな感じでした。udemyでのパクリなんですが、これだけでも十分値段の価値がありましたわ。



参考
Online Courses - Learn Anything, On Your Schedule | Udemy
「18万人が受講〜」