自分のキャリアをあれこれ考えながら、Pythonで様々なデータを分析していくブログです

(その3-1) エイムズの住宅価格のデータセットのデータ加工の計画

Data Analytics
Data Analytics

前回までの記事でデータの俯瞰をやったので、今回からは欠損値処理、外れ値処理、特徴量エンジニアリングをしてモデリング用データを作成したいと思います。

まずはどう加工するか計画を練りました。

ちなみに下記Kaggleのノートブックを参考にしています。

Stacked Regressions : Top 4% on LeaderBoard

スポンサーリンク

欠損値処理

下記変数は欠損割合が多いのですが、データが不明というよりは存在しないという意味合いが強そうなので"NA"という区分や0で値を埋めてあげようと思います。

・PoolQC (プールの品質)
・MiscFeature (その他存在するプロパティ)
・Alley (路地アクセスの種別)
・Fence (フェンスの品質)
・FireplaceQu (暖炉の品質)

間口距離は同じ地区の中央値などの値で埋めてあげると良いようです。(だいたい似ているだろうという推測)

・LotFrontage (間口距離)

その他欠損がある変数は中央値や最頻値で補完してあげようと思います。

スポンサーリンク

外れ値処理

外れ値かどうかを判断して除外するかどうかを検討します。

(その2-1) エイムズ の住宅価格のデータ俯瞰の記事で数値型の変数のパーセンタイルを確認しました。

もう一度パーセンタイルを確認したところ、LotArea(土地面積)、BsmtFinSF1(地下室1の面積(ft2))、MiscVal(プロパティの価値)で99パーセンタイルと最大値の差が大きいように思えます。(つまり極端に数値が大きい値が存在していると思われる)

変数名 99パーセンタイル 最大値
LotArea 37567.64 215245.0
BsmtFinSF1 1572.41 5644.0
MiscVal 700.00 15500.0

ただ、MiscValはそもそも全体の95%が0のようですし、テニスコートの価値などになると思うので外れ値ではないと判断しようと思います。

LotAreaとBsmtFinSF1に関してもう少しだけ深掘りしてみようと思います。

個人的には土地面積も地下室の面積も大きい値は外れ値ではないのではないかと思っています。(面積が大きい住宅は普通にありそう)

スポンサーリンク

特徴量エンジニアリング

名義型の変数のダミー変数化、複合変数の作成、文字列抽出などによる新しい意味を持つ変数の作成です。

目的変数を説明する新しい特徴を生み出します。複数の変数を組み合わせることにより、より説明力がある変数が作成できればモデルの精度向上へ貢献できるかも知れません。

また複数の変数を統合したものを作成することにより、変数の数を減らせる可能性もあります。(例えば1学期~3学期の成績の平均を取ることによって、「今年の平均成績」という変数を作成してしまえば個別の学期の成績はモデルに組み込まなくても良くなるかも知れません。)

今回エイムズのデータセットの変数一覧を眺めていて、下記変数を作成できるのではないかと思いました。

・住居総面積 (GrLivArea + TotalBsmtSF)
・バスルーム総数 (BsmtFullBath + BsmtHalfBath + FullBath + HalfBath)
・ウッドデッキとポーチを足した総面積 (WoodDeckSF + OpenPorchSF + EnclosedPorch + 3SsnPorch + ScreenPorch)

他にも数値型変数を対数変換やBox-Cox変換することにより回帰モデルへの当てはまりをよく出来る可能性もあります。(ただし偏回帰係数の意味合いが変わったりするのでモデル解釈には十分注意する必要がある。)

変数変換の意味合いに関しては下記サイトが参考になりました。

従属変数が正規分布してないがどうしたらいいか?
対数変換をする3つの目的
対数(自然対数)を理解しよう!

スポンサーリンク

変数選択

モデリングに必要なさそうな変数は除外します。

  1. 不明データ(推定できない)が多い変数は除外
  2. IDやシーケンスなどの目的変数を説明しない変数は除外
  3. 相関が高い変数(rが0.7以上やVIFが5以上)は一方を除外

変数を除外することによって計算量を減らせたり多重共線性を防げる可能性があります。

※ 多重共線性に関しては「多重共線性(multicollinearity)が存在することの影響」に記載してあります。

※ データロボットさんのコミュニティ記事「多重共線性について」でのやり取りも非常にしっくりきました。

スポンサーリンク

参考

https://datachemeng.com/post-3529/
https://uribo.github.io/practical-ds/02/numeric.html
https://www.imagazine.co.jp/今あらためて考える特徴量エンジニアリング~予

タイトルとURLをコピーしました