戦コンからDSへの転身なるか?

Dev, DS的な勉強と実践の継続の記録

Kaggle / Titanic - Machine Learning from Disaster / 写経 / Gold Medalistから学ぶ Day3

環境

Jupyter Notebook / Local

やったこと

ミーティングの合間に1時間くらい時間ができたので、こういう時にネットサーフィンするのではなく、ちょっとでも良いから学びに入れれば習慣になるなということで手を動かしてみました。

前回は'Mr.'などの敬称について文字列カテゴリーとしたので、それを数値カテゴリーにします。

# Titleを数値にしたものをTitleIdとして格納(NaNの場合は0)
title_mapping = {"Mr": 1, "Miss": 2, "Mrs": 3, "Master": 4, "Rare": 5}

for dataset in combine:
    dataset['TitleId'] = dataset['Title'].map(title_mapping)
    dataset['TitleId'] = dataset['TitleId'].fillna(0)

train_df_dropped.head()

pandasのDataFrameクラスが持っている.map()関数でマッピングを適用して'TitleId'としました。その上でNaN値があればクラス関数である.fillna()で数値の0で埋めました。

所感

まだ前処理段階ですが、'Title'として文字列カテゴリー化した特徴量カラムを’TitleId'として新しい特徴量カラムを作るべきなのか、それとも'Title'を文字列から数値に置換してしまうのが良いのか、経験的に判断ができません。

僕の感覚では、分析では基本的に数値化して行うので置換してしまっても良いのかなとは思っています(実際、この写経をしている先生?も置換していました)。ただ、不安でもあるので新カラムにしてしまいました。この辺りは分析の経験を重ねることで分かってくるところかなと思っています。