ノック83 : データを機械学習に適した形式へ変換しよう
機械学習に適したデータに変換して行きます。
実行結果
pclass sex age sibsp parch fare embarked class who adult_male deck embark_town alive alone
0 3 male 22.0 1 0 7.2500 S Third man True NaN Southampton no False
1 1 female 38.0 1 0 71.2833 C First woman False C Cherbourg yes False
2 3 female 26.0 0 0 7.9250 S Third woman False NaN Southampton yes True
3 1 female 35.0 1 0 53.1000 S First woman False C Southampton yes False
4 3 male 35.0 0 0 8.0500 S Third man True NaN Southampton no True
embarkedは出港した港の情報、embark_townは出港した港の名前なので、同じ情報となります。必要ないデータなので削除します。
また、aliveは生き残ったかどうかを表すsurvivedのチート情報になるため、削除します。
実行結果
pclass sex age sibsp parch fare embarked class who adult_male deck alone
293 3 female 24.0 0 0 8.8500 S Third woman False NaN True
201 3 male NaN 8 2 69.5500 S Third man True NaN False
322 2 female 30.0 0 0 12.3500 Q Second woman False NaN True
266 3 male 16.0 4 1 39.6875 S Third man True NaN False
540 1 female 36.0 0 2 71.0000 S First woman False B False
機械学習では文字列をそのまま扱いにくいので、one_hot_encodedを使用してさらに個別に分解し、 1,0に置き換えます。
実行結果
pclass age sibsp parch fare adult_male alone sex_female sex_male embarked_C ...
293 3 24.0 0 0 8.8500 False True 1 0 0 ...
201 3 NaN 8 2 69.5500 True False 0 1 0 ...
322 2 30.0 0 0 12.3500 False True 1 0 0 ...
266 3 16.0 4 1 39.6875 True False 0 1 0 ...
540 1 36.0 0 2 71.0000 False False 1 0 0 ...
[5 rows x 25 columns]
pclassは船の客席のランクを表しています。1は1等席で裕福さを表す指標となります。子の変数もget_dummiesでさらに分解します。
実行結果
age sibsp parch fare adult_male alone sex_female sex_male embarked_C embarked_Q ... deck_A deck_B deck_C deck_D deck_E deck_F deck_G pclass_1 pclass_2 pclass_3
293 24.0 0 0 8.8500 False True 1 0 0 0 ... 0 0 0 0 0 0 0 0 0 1
201 NaN 8 2 69.5500 True False 0 1 0 0 ... 0 0 0 0 0 0 0 0 0 1
322 30.0 0 0 12.3500 False True 1 0 0 1 ... 0 0 0 0 0 0 0 0 1 0
266 16.0 4 1 39.6875 True False 0 1 0 0 ... 0 0 0 0 0 0 0 0 0 1
540 36.0 0 2 71.0000 False False 1 0 0 0 ... 0 1 0 0 0 0 0 1 0 0
[5 rows x 27 columns]
pclassが細分化されてカラム数が27になっています。