Open11

【基礎練習】タイタニック号の分析

ウミカワセミウミカワセミ

基礎練習として定番のタイタニック号の分析を自分で実施してみることにした。

(将来的にPokeAPI使って分析の方も面白いかも?)

ウミカワセミウミカワセミ

参考になるサイトを見つけた。

Kaggle Notebookを使うとjupyterと同じ感覚で使えそう。
データセットまで準備してくれるので楽。

Kaggle超入門!初めてのタイタニック提出。おすすめのUdemy講座も紹介

ウミカワセミウミカワセミ

.profile_report()が便利そう。
基本統計量の詳細を一発で出してくれる。
これでビックデータの概要が簡単につかめる。

以下のようなデータの特徴まで出してくれるのが良い。

ウミカワセミウミカワセミ

data_all.drop(['PassengerId','Cabin'...........], axis=1, inplace=True)
inplace = Trueは元のデータセットを書き換える。axis=1は列を指す。

ウミカワセミウミカワセミ

ほとんど上のURLの人のコピペで以下を作成。微妙にアレンジ。

#PassengerId、Ticket:ただの順番で関係ない、Cabin:欠損値多すぎ、Name:どう考えても関係ない、Fare:出航地により変わりそうだから消す、Parch、SibSp:相関係数から関係なさそうだから消す
data_all.drop(["PassengerId","Cabin","Name","Fare","Parch", "SibSp","Ticket"], axis=1, inplace=True)
data_all.info()

さらに欠損値補完(ほぼコピペ)をした。

#欠損値補完。
#年齢は分散が小さいので、平均値を補完
data_all["Age"].fillna(np.mean(data_all['Age']),inplace=True)
#搭乗港は文字列なので、最頻値補完
data_all["Embarked"].fillna(st.mode(data_all["Embarked"]), inplace=True)
data_all.info()
ウミカワセミウミカワセミ

GPT先生に聞いてカテゴリ変数をダミー化した。

# "Pclass"列をダミー変数に変換
pclass_dummies = pd.get_dummies(data_all['Pclass'], prefix='Pclass')

# "Sex"列をダミー変数に変換
sex_dummies = pd.get_dummies(data_all['Sex'], prefix='Sex')

# "Embarked"列をダミー変数に変換
embarked_dummies = pd.get_dummies(data_all['Embarked'], prefix='Embarked')

# ダミー変数を元のデータフレームに結合
data_all = pd.concat([data_all, pclass_dummies, sex_dummies, embarked_dummies], axis=1)

# 元のカテゴリカル列を削除
data_all.drop(['Pclass', 'Sex', 'Embarked'], axis=1, inplace=True)

# 結果のデータフレームを表示
print(data_all)
ウミカワセミウミカワセミ

順位を見る。

12000位程度(自分):0.75程度
300位ぐらいの人:0.80程度

⇒①相関係数による取捨選択、②適切な欠損値補完(今回はほぼコピペ)、③カテゴリ変数のダミー変数化さえやっておけば、ライブラリを使ってある程度の精度は出せるものと理解。

ウミカワセミウミカワセミ

これをうまくまとめてArticlesにするのは良い気がした。
時間があるときにやろう。