はじめに
前回のTitanic(タイタニック)に続いてKaggleの回帰問題における初心者向けチュートリアルであるHouse Priceに取り組んでみました。
Titanicでは乗客の生死についていずれであるか予測しましたが、このHouse Priceは住宅の販売価格の連続値を予測します。
今回いくつかのモデルを試してみましたが、結果は以下のようにElastic Netが試した中では一番良い結果となりました(もちろんハイパーパラメータの値によっては変わりうると思いますが)。
ハイパーパラメータは参考にしたページの値をそのまま使用させていただいています。
Lasso < ランダムフォレスト回帰 < Ridge < Elastic Net
Elastic Netのスコア:0.13585
順位:5,444 / 14,101 (38.6%)
最初にElastic Netで出して最後に出し直したら、やってること変わってないけど多少精度落ちました…(Notebookのスコアはちょっと落ちたスコア)
参考にした記事
【Kaggle】「House Prices」をパクりながらやってみた。
住宅価格を予測する〜Kaggle House Priceチュートリアルに挑む
kaggleの住宅価格予測問題(House Prices)を解いてみる
Blend&Stack LR&GB = [0.10649] {House Prices} v57
Notebook
コードやグラフ等は下記のNotebookを参照してください。
交差検証の時の自由度調整済み決定係数算出に使うデータ件数は、分割前の全件か分割後の$K$1つ分かだけ疑問。
やってみて感じたこと
-
連続値の値の処理
販売価格(SalePrice)について対数変換して可視化してたものの、当初はデータフレームに反映するのを忘れていて全く収束しない状態になっていました。(RMSEの値が1万とか)
標準化にしろ対数変換にしろ、連続値の値をどう処理するかということは気をつけなければならない。 -
欠損値の意味
欠損値は必ずしもデータが漏れているということを示すとは限らない。
今回の場合、例えばプールの品質(PoolQC)はほとんどが欠損していたが、品質以前にプールがないからデータなしとなっていたレコードがほとんどである。
次の予定
今度は実際のコンペに挑戦していってみようと思います。
今度からはOptuna使ったりもしつつ、銅メダルを目指していきたいところです。