kaggleの中古物件価格予測にチャレンジ
他の人のチュートリアルを見ながら理解したり、チューニングしたりは
ある程度できるようになってきたので、自分なりのやり方でkaggleの中古物件価格予測をやってみる
初見の感想・方針
変数が多い・・・
説明変数・・・80!
signateのお弁当の需要予測のように、yと各変数をプロットするのは難しい
ちょっと変数が多すぎるのでまずは量的変数だけで重回帰分析をやってみようと思う。
チューニングとか質的変数、非線形モデルの利用はまた別の機会に
変数選択
方針:量的変数に絞り、相関係数のヒートマップで関係ありそうな値を算出
データフレームの相関係数算出の書き方は以下
train.corr()
[相関係数のヒートマップの書き方]
(https://qiita.com/tmp_llc/items/db626c9e331bfdc4857a)
相関係数のヒートマップの書き方その2
ヒートマップを見ても判断できなかった・・・
純粋に相関係数の絶対値が高いものをランキングして、それらを変数に代入することとした
絶対値の取り方
データフレームのソート
target_var = abs(corr_mat.loc["SalePrice",:]).sort_values(ascending=[False])[1:11]
この結果で上位10件の変数を説明変数とした
モデル選択
今回はシンプルにscikit-learnの線形回帰を実施。
http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LinearRegression.html
ちなみに提出ファイルを作成する際も少しはまった。sckit-learnの線形回帰の結果は配列で
出力されるので、このままでは提出ファイルにうまく結合することができな。
以下のようにデータ型をpandasデータフレーム型に変換してあげる必要がある
sample["SalePrice"] = pd.Series(y_test)
結果
RMSE(平均平方二乗誤差)のスコアは 0.73044
順位は4236/4313位
本当はデータをもっと俯瞰的に見たりしないといけないので、
チューニングについては次回以降に実施する
コードはGitHub gistに提出した。ほとんど参考にならないけど、
そもそも投稿することに意義がある(と思う)