0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Kaggle のHouse Prices で実施したデータ前処理(備忘録)

Posted at

KaggleのHouse Pricesコンペで実施したデータ前処理(備忘録)

前提条件

Python3.7.10を使用

1.目的変数の分布の確認

目的変数の分布が正規分布になっているかどうか確認し、正規分布になっていなかった。
log1p関数で、目的変数で変換し、目的変数の分布を確認。学習を行う際に、正規分布にした方が、精度が上がるらしい。
log1p関数は、$\log(1+x)$の演算を行う関数

log1p演算前) 正規分布になっていない。
seaborn_distplot.png!

log1p演算後) ほぼ正規分布になった
seaborn_distplot_after.png

2.欠損値の補完

欠損値を確認し、データ補完を実施した。
補完方法は、None/ゼロ/最頻値/平均値/中央値など。

補完方法 コード
None df.fillna({colum_name : 'None'}, inplace=True)
ゼロ df[colum_name].fillna(0, inplace=True)
最頻値 df[colum_name].fillna(df[colum_name].mode()[0], inplace=True)
平均値 df[colum_name].fillna(df[colum_name].mean(), inplace=True)
中央値 df[colum_name].fillna(self.df[colum_name].median(), inplace=True)

※dfはPandasのDataFrame

3.外れ値の除去

各列のデータを箱ひげ図などで確認し、外れ値を除去する。以下はLotFrontageが160以上の場合、160に値を変更するプログラム

df.loc[df['LotFrontage'] >= 160,  'LotFrontage'] = 160

4.数値データのカテゴリ化

数値データであるが、実際は、カテゴリデータである場合。数値データを文字列に変換する。

df['MSSubClass'] = df['MSSubClass'].apply(str)
0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?