科学の箱

科学・IT・登山の話題

Python

kaggle Titanic Tutorial – 1

投稿日:2018年5月21日 更新日:

KaggleでTitanic tutorialにチャレンジしてみる。

Titanic: Machine Learning from Disaster
https://www.kaggle.com/c/titanic

ライブラリ読み込み


import numpy as nm
import pandas as pd
import seaborn as sns

%matplotlib inline

データの読み込み


d_train = pd.read_csv('train.csv')
d_test = pd.read_csv('test.csv')

データの確認


d_train.head()
d_test.head()

 

トレーニングデータに存在して、テストデータに存在しない項目があるか確認する。このような項目は分析には使えないので削除対象となる。今回は特にそのような項目はない。

次に使えなさそうなデータを見てみる。PasssengerID, Name, Ticketは役に立たなさそうなのでドロップ対象とする。

nullがある項目としては明らかなのはCabin。それ以外にもあるかもしれないので確認する。

レコード数を確認する。


d_train.shape

(891, 12)


d_test.shape

(418, 11)

データの基本統計量を確認する。


d_train.desribe()


d_test.describe()

 

欠損値の概要を見てみる。


sns.heatmap(d_train.isnull(),yticklabels=False,cbar=False,cmap='viridis')

有効データ数を確認


d_train.count()

PassengerId 891
Survived 891
Pclass 891
Name 891
Sex 891
Age 714
SibSp 891
Parch 891
Ticket 891
Fare 891
Cabin 204
Embarked 889
dtype: int64

無効なデータを確認


d_train.isnull().sum()

PassengerId 0
Survived 0
Pclass 0
Name 0
Sex 0
Age 177
SibSp 0
Parch 0
Ticket 0
Fare 0
Cabin 687
Embarked 2
dtype: int64

Testデータも同様に確認


d_test.count()

PassengerId 418
Pclass 418
Name 418
Sex 418
Age 332
SibSp 418
Parch 418
Ticket 418
Fare 417
Cabin 91
Embarked 418
dtype: int64


d_test.isnull.sum()

PassengerId 0
Pclass 0
Name 0
Sex 0
Age 86
SibSp 0
Parch 0
Ticket 0
Fare 1
Cabin 327
Embarked 0
dtype: int64

欠損値に対する方向性を確認する。Age,Embarked,Fareは保管する、Cabinは欠損値が多いので削除。

 

不要の項目を削除する。


d_train = d_train.drop(['PassengerId','Name','Ticket','Cabin'], axis=1)
d_test = d_test.drop(['Name','Ticket','Cabin'], axis=1)

d_train.head()
d_test.head()

Embarkedを埋める。Embarkedはカテゴラルデータであり、2件だけ欠損している。最頻値を利用する。


pd.value_counts(d_train['Embarked'])

S 644
C 168
Q 77
Name: Embarked, dtype: int64


d_train["Embarked"] = d_train["Embarked"].fillna("S")

次にFareを保管する。Fareは連続値なのでとりあえず中央値を利用する。


d_test['Fare'].mean()


35.6271884892086



d_test["Fare"] = d_test["Fare"].fillna(35.6271884892086)

Ageも連続値なので中央値を利用する。


d_train['Age'].mean()
d_train["Age"] = d_train["Age"].fillna(29.69911764705882)
d_test['Age'].mean()
d_test["Age"] = d_test["Age"].fillna(30.272590361445783)

最後に文字列であるカテゴラルデータを数値に変換する。


from sklearn.preprocessing import LabelEncoder
LE=LabelEncoder()

labels = ['Embarked','Sex']
for label in labels:
d_train[label]=LE.fit_transform(d_train[label])
d_test[label]=LE.fit_transform(d_test[label])

データクレンジングの結果を確認する。


d_train.head()

d_test.head()

 

メタ情報

inarticle



メタ情報

inarticle



-Python
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

Python + Slack Bot – 3

さてリアルタイムでとりあえずうまくいったので、もう少し違うサンプルコードを試してみる。 参考にしたのはこちら。 https://www.fullstackpython.com/blog/build-f …

no image

django install

まずはdjangoをインストールする pip install django   Versionを確認する python -m django –version はじめてのプロジェク …

no image

selectorとxpathを手軽に取得する方法

スクレイピングをするプログラムを開発するときに対象となる項目を取得するためにselector/xpathで指定する。 Google Chromeではselector/xpath値を簡単に取得できる。 …

no image

graphvizによる決定木の表示

graphvizの実行ファイルをインストール https://graphviz.gitlab.io/_pages/Download/Download_windows.html pythonにgraph …

no image

python virtualenvの使い方

pip3 install virtualenv virtualenv myenv myenv/Scripts/activate Related posts:seabornをEDAに応用するkaggle …

2018年5月
« 4月   6月 »
 123456
78910111213
14151617181920
21222324252627
28293031  

side bar top



アーカイブ

カテゴリー