【Pythonデータ分析】Kaggleのタイタニックデータで、データの前処理を勉強

Kaggleのタイタニックのデータを用いて、いろいろなモデルを試して勉強中なのですが、今回はモデルにかける前のデータの前処理についてまとめようと思います。

タイタニックデータは特徴量が少ないので目に優しいです。

 

コード

今回整理したものは以下にまとまっています。

 

覚え書き

・pandas_profilingが非常に便利だと、とある人から教わりやってみたら、あら便利。

データセットのざっくりした情報をまとめて表示してくれます(特徴量はいくつあって、欠損値は何%あって、データ型はこれが何個で、この特徴量はゼロの割合が多いから注意してね、とか相関関係とかを親切に教えてくれます。)

データ解析の一番初めに、データがどんな構造だったり、どんな特徴があるかといったことを探ることをEDA(Explanatory Data Analysis:探索的データ解析)というそうですが、pandas_profiling一発でこれができてしまいますね!

 

・データ型のみを見たい、というときは train.dtypesで見ましょう。

Object型があるか確認します。変換してあげないとモデルに突っ込めません。

 

・Oblect型のカテゴリ変数の変換は、任意の数字を割り振るのと、ダミー変数化する方法があるようです。

前者は、例えばSex=maleだったら0、femaleだったら1なんていう風に置き換えてしまう方法をとります。

train[Sex].map({male:0,female:1})です。map関数便利です。

・ダミー変数化するのは、pd.get_dummiesを用います。

ダミー変数化するとは、

このように1列になっているものを

このように横に展開し、該当する箇所に1を立てる処理のことです。

 

・欠損値を含むカラムを特徴量として使いたいときには、欠損値を補完しないとモデルがエラーを吐き出します。

・欠損値のあるカラムの確認は train.isnull().any(axis=0)

・それぞれのカラムで欠損値がいくつあるかどうか数えるには、train.isnull().sum()

・欠損値を中央値で埋める場合は、train[Age].fillna(train[Age].median()) です。

 

まとめ

モデルに突っ込む前に、カテゴリ変数の変換と、欠損値の補完を行うこと。

 

おわり