【機械学習】Kaggle演習〜Titanic : Machine Learning from Disaster〜2
前回でデータ取り込みまで完了。
データサイズ
test(418, 11)
train(891, 12)
基本統計の確認
test.describe()
train.describe()
データサイズとcountを比べるとデータ欠損がみられるのでデータ欠損の確認。
データ欠損確認
欠損データをisnullで探す。
def kesson_table(df): null_val = df.isnull().sum() percent = 100 * df.isnull().sum()/len(df) kesson_table = pd.concat([null_val, percent], axis=1) kesson_table_ren_columns = kesson_table.rename( columns = {0 : '欠損数', 1 : '%'}) return kesson_table_ren_columns kesson_table(train) kesson_table(test)
データクレンジング
欠損データを仮の値で中央値を入れていく。統計情報が中央値に引っ張られてしまうが、データがないものはしょうがないので仮値を入れてしまう。
train["Age"] = train["Age"].fillna(train["Age"].median()) train["Embarked"] = train["Embarked"].fillna("S") kesson_table(train)
test["Age"] = test["Age"].fillna(test["Age"].median()) test.Fare[152] = test.Fare.median()
文字列の数字置換
Sex:「male」「female」
Embarked:「S」「C」「Q」
これらの文字列を数字置換する。
train["Sex"][train["Sex"] == "male"] = 0 train["Sex"][train["Sex"] == "female"] = 1 train["Embarked"][train["Embarked"] == "S" ] = 0 train["Embarked"][train["Embarked"] == "C" ] = 1 train["Embarked"][train["Embarked"] == "Q"] = 2 train.head(10)
test["Sex"][test["Sex"] == "male"] = 0 test["Sex"][test["Sex"] == "female"] = 1 test["Embarked"][test["Embarked"] == "S"] = 0 test["Embarked"][test["Embarked"] == "C"] = 1 test["Embarked"][test["Embarked"] == "Q"] = 2 test.head(10)
今回でデータクレンジング完了。
また長くなってしまったので次回でデータ解析を行う。