1
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の「住宅価格を予測する」を1行ずつ読み解く(第6回:目的変数の分布変換)

Posted at

お題

 有名なお題であるkaggleの「House Price」問題にみんなでチャレンジしていくことになったハンズオンの内容をメモしていく企画の第6回。解説というよりはメモのまとめだったりもしますが、どこかの誰かのためになれば幸いです。前回で準備がおわり、いよいよ解析段階に。

本日の作業

目的変数の分布変換

学習データのSalePrice(住宅価格)の分布を確認します。
欠損補完の箇所で、プールがない住宅がほとんどであることがわかりました。
これは裏を返せばプールがあるような豪邸がいくつか存在するということであり、住宅価格がかなり歪な分布になっているのでは?と想定されます。

こうした仮設を元に描画するのが重要だなと振り返ります。とはいえまずは言われるがままにグラフをアウトプット。

sns.distplot(train['SalePrice'])

seabornについて

「snsってなんだっけ?」ってなりました。最初過ぎて忘れていましたが、一番最初にインポートしていたライブラリの中にありましたね。これです。

import seaborn as sns

なるほどseaborn

train['SalePrice']に入っていた内容を確認

あとは念のため、train['SalePrice']に入っていた内容を確認。
なるほどひたすら各が並んでいる列。
スクリーンショット 2020-06-29 12.07.02.png

アウトプットされたグラフ

そしてアウトプットされたグラフはこんな感じになりました。

sns.distplot(train['SalePrice'])

image.png

対数変換

予想どおり、かなり右側に分布の裾野が広がっています。
対数変換をすることで正規分布に近づけます。

とのことですが、「対数変換、とは」というところの確認。

sns.distplot(np.log(train['SalePrice']))

対数変換前後の配列の変化

これだけ出力してみます。

np.log(train['SalePrice'])

なるほど、潰れている。
スクリーンショット 2020-06-29 12.17.28.png

アウトプットされたグラフその2

sns.distplot(np.log(train['SalePrice']))

image.png

なるほどきれいめに正規分布になっている気がする。

予測モデルの構築

に、入りたかったですが、どうやら時間切れ臭いので今日はここまでです。

今回は変数量がかなり多いため、係数に強力なペナルティをかけたいのでLasso回帰を使って予測モデルを構築します。

予習がてらLasso回帰について調べて終了。

Lasso回帰

おしまい。

分析レイヤーに入ってきてから、やはり背景知識の補充が必要だなと、理解しました。
主に回帰分析について。

1
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
1
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?