不動産の価格でも土地(更地)の価格を機械学習モデルで求めるのは、本当に難しいです。
なぜ難しいかというと、その土地が存在する市町村や町名を扱うのがとても難しい。例えば僕が住んでいる石川県で「金沢市本町2丁目」の価格を求める場合、「金沢市」や「本町2丁目」をどう扱うかがとても難しいです。
もっとも単純なやり方で、one-hotを使ったらどうなるか。すべての市町村名と町名がすべて独立の特徴量になるので、次元数があっという間に数千になります。そうすると特徴量の数に対してデータの数(
約17,000)が不足して、次元の呪い、つまり精度が全くでなくなります。
そこで何とか市町村名や町名をうまく特徴量化してやる必要があります。市町村名の場合、例えば人口密度、地価公示の最高価格などで代用し、町名の場合は高齢化率などを使います。
このように特徴量を作り上げるのに四苦八苦して、最終的にLightGBMでモデル化した結果がこれです。
なんとか0.75程度の精度は確保しました。今はこれが精いっぱい(ルパンかよ)。