こちらの記事をご覧いただきありがとうございます。
以前にSUUMOの賃貸情報をスクレイピングし、いろいろ前処理した記事を投稿しました。
そのデータを使って機械学習モデルでいろいろ調べていたのですが、どうにも家賃がバカ高い物件の予測がうまく行きませんでした。
そこで、家賃がバカ高い物件の特徴は何だろうかと調べましたので、ご紹介します。
※過去のSUUMO記事は、この記事の最後にリンクを用意しておきます。
事前に行ったこと
大したことは話してませんので、本題だけ見たい人は飛ばしてOKです。
あでも変数重要度の話だけ見たほうがいいかも。
回帰予測に使用したモデル
回帰予測にはLightGBMを使用しました。予測精度が高いモデルで有名です。
詳しく知りたい方は各自ググってください。
家賃を対数変換
家賃は10万前後が圧倒的に多く、30万を超える物件すらかなり少ないです。
でも超高額物件も含めてある程度正確な予測を出したいので、家賃を対数変換します。
変数重要度の確認
とりあえずLightGBMくんに持っている変数全部をぶち込んで予測してもらいました。
テストデータでのr2スコアが約0.83でした。
で、予測に役に立った変数の確認をしました。結果が以下のグラフです。
専有面積 や 間取り がかなり有力らしいですね。広ければ家賃が高いと言われても納得します。
また広さは設備の充実にもつながるので、その点も評価が高い要因になっていると思います。
築年数 も有力ですね。高額物件はだいたい最近の物件な気がするのでこれもわかります。
新築のほうが最新設備が入っていることも多いでしょうからね。
市区町村 や 駅 は大まかな場所を示す情報です。高い物件があるエリアはある程度決まっていると言えそうです。
皇居からの距離 (見切れてしまっていますが一番下です)もある程度有力ですが、市区町村や駅ほどではないですね。都心に近いほどいい、と考える人はそんなにいない気がしてきました。
あと 路線 もさほど有力ではないですね。これはエリアの広がりがあるからでしょうか。
階数 (建物が何階まであるか)と 階 (部屋が何階か)で差があるのも面白いですね。
建物の規模が重要であって、部屋が何階にあるかってのはそんなに家賃に影響しないってことでしょうか。へぇー。
S,L,D,K の中でも L (リビング)だけちょっと有力ですね。
確かにリビングがある物件はそれなりに広いことを考えるとわからんでもない気がしてきました。
不要な変数を落とす
家賃の予測にあまり関わっていない変数はむしろ予測の邪魔になる可能性があるので使わないことにしました。
変数を減らしてもう一度予測し、精度が大して変わらなかった変数を削りました。
結果残った変数は8種類で、以下の通りです。テストデータのr2スコアは約0.84でした。
- 最寄駅からの距離
- 築年数
- 階数
- 専有面積
- 市区町村
- 路線
- 駅
- 間取り_L
さっき有力だった 間取り とか消えてるやん?と思われそうですが、 間取り と 専有面積 って結構似ている情報なので、間取りを削っても予測に大した影響が出なかったってことです。そのはずです。
最寄り駅までの移動時間を表す 歩、バス、車 や、階 も、同じような理由で不要だったと考えられます。
純粋に役に立たなかったって変数もいると思いますが。
訓練とテストの比率調整
物件データが16万件くらいあるので、ちゃんと学習しきれる程度の訓練データを用意できる比率に分けました。
半々くらいに分けるのが予測精度が高かったです。学習データの比率を0.5にした時のテストデータのr2スコアは約0.87でした。
※パラメータ調整は手間が多いので後でやります。
機械学習モデルの精度を上げるにはモデルのパラメータ調整が必須です。
が、LightGBMくんは未調整でもそれなりに良い精度が出せるのでまだ調整していません。
結構時間かかるからね。面倒くさいんですよね。
バカ高い物件の詳細を見る
ここから本題に入ります。
超高額物件の詳細ページを見て、「超」高額たるゆえんを探します。
家賃250万の超高額物件
家賃250万とか、給料何か月分だろうか…。敷金1000万とかもうね(語彙力消失)。
詳細ページには、検索結果一覧のページには表示されていない情報が結構あります。
↓の1枚目の画像は、検索ページでも載っている情報が多いですが、2枚目のほうは検索ページには載っていない情報がたくさんあります。
さて、家賃は 250万円 でしたが、モデルの予測では 約142.7万円 という結果になりました。
なぜこのような結果になったのでしょうか?
モデルが重要視していた情報を見てみます。
- 最寄駅からの距離 →徒歩20分。遠い
- 築年数 →築15年。めっちゃ新しいわけではない。(古くもない)
- 階数 →3階建。特段デカくない。
- 専有面積 →277.82[m2]。クッソ広い。
- 市区町村 →港区。かなり相場が高いところ。
- 路線 →東京メトロ日比谷線。多分いいところ?(あんまり詳しくない)
- 駅 →広尾駅。わからない。
- 間取り_L →ある。
体感、専有面積の情報でかなり予測が引き上げられているような気がします。あと港区とか立地もよいところなんじゃないでしょうか。
建物自体は縦にデカいわけでもなくめっちゃ新しい物件ってわけでもありません。
して、予測値は実際の金額と100万以上の差が出てしまったわけですが、その理由を探してみました。
僕が思いついたものを挙げます。
仮説
1. 設備がかなり充実している
ぱっと見で見た時に、たぶんこれやろなぁ~と思いました。かなり充実しているように思いませんか?
これだけ設備が充実していればそら家賃もバカ高くなって当然な気がします。
2. 超高額になってしまうだけのやばい設備がある。
さっきのオプションの中身をよーく見てみると、結構費用が掛かりそう設備がいくらか見つかります。
ちょっと文字が細かいですが…。
設備の中に デザイナーズ ってのがありました。なんか家賃やばそうな言葉の響きを感じます。
少し調べましたが、デザイナーズってだけで高くなるわけでもないようです。
※デザイナーズについてはこちらとかこちらとかを参考にしました
他にも、テラス 床暖房 ペット専用設備 など、建物の構造から専用のつくりが必要になりそうなものが見られました。こういう項目があるとかなり値段が上がりそうです。
設備の数だけじゃなくて内容がやばいのもありそうですね。
3. 構造が鉄筋コンクリート
鉄筋コンクリートとか、建物の構造(材質?)の違いにはあまり詳しくなかったのですが、関係があるかもと思って調べてみました。
どうやら構造が鉄筋コンクリートだと家賃が高くなりやすいっぽいです。
耐震性、遮音性、耐久性、耐火性、デザイン性、断熱性に優れるなど多くのメリットを持つ一方、
建設費用が高く家賃相場も上がりやすいらしいです。
※こちらを参考にしました。
逆に、相場が低めなのが木造らしいです。
こちらで構造比較があったので参考にしました
4. 駐車場があり、しかも無料
物件内に駐車場を備えていて、しかも無料で利用できるらしいです。
これってつまり駐車場の使用料金も家賃に含まれているんじゃないでしょうか。
(なぜ家賃に含めているのかはわかりませんが)
5. 取り扱う不動産会社による
SUUMOは様々な不動産会社からの物件情報を掲載しています。料金設定も不動産会社が決めているはずです。
不動産会社の匙加減なら似たような部屋でも料金が異なることもあるのではないでしょうか。特に高額物件は適切な家賃を決めるのも難しいような気がします。
ボッタくりが紛れ込んでいるとかあまりないと思いますが絶対ないとも言えないような。いやそもそも借りる人が価値に見合った価格だから借りるのであってボッタくりとかあんまりないような…?
高額物件の予測がうまくいったものとうまく行かなかったものを比較する
家賃が高額の物件でも、予測がそれなりにうまく行っているものとそうでないものがありました。
これらの違いを見ることで家賃が高額たるゆえんを垣間見ることができると思い、比較してみました。
比較検証しやすいように、予測金額がおおよそ同じだった物件で比較します。
と思って比較対象を探していたところ、同じ建物内で内装に差がある物件でありながら、どちらも152.7万と予測された物件があったので、それを比較します。
高額でも予測がうまく行った物件
こちらの物件です。
実際の家賃は150万円です。予測との差額は2.7万と、うまくいっているような気がします。
高額で予測がうまく行かなかった物件
こちらの物件です
実際の家賃は230万です。予測との差額は77.3万とけっこう外しています。
比較
どちらも同じ建物内の物件です。
まずはモデルに入れた変数の値の違いを確認しました。
- 最寄駅からの距離 →同じ
- 築年数 →同じ
- 階数 →同じ(建物の階数であって部屋のある階ではない)
- 専有面積
→150万:186.40[m2] 230万:234.20[m2] - 市区町村 →同じ
- 路線 →同じ
- 駅 →同じ
- 間取り_L →同じ
面積に結構な差がありますが、それ以外は同じです。
…ん?面積しか差がないなら、面積が広い分予測が変わるはずでは…??
これについては、LightGBMの仕組みに関係があるはずです。
決定木を利用するモデルなので、一部値が異なっていていても同じ予測を返すことがあります。
※詳しいわけではないので間違っていたら教えてください。
※あと詳しく知りたい方は各自調べてください。ここでの解説は割愛します。
モデルに入れた値では面積の差がありましたが、予測には反映されていませんでした。
これが家賃の差になっている可能性はあり得ると思います。
ではそれ以外の違いはどうでしょうか?
詳細ページから確認できた違いは以下でした。
- 特徴・設備の中身
- 間取り
- 部屋のある階
- ペットの可否
- 不動産会社
このうち、間取りと階の情報はモデルが学習して不要と判断された情報です。(私のこの判断が間違っている可能性はあります)
設備の差や不動産会社の違いによって家賃に影響が出ていると考えられます。
まとめ
モデルに入れた変数以外に関係のありそうな情報は、
- 設備の中身や充実
- 構造
- 駐車場
- 不動産会社
っぽいことが分かりました。
次回の記事では、これらの情報をスクレイピングで取得し、モデル分析によって家賃への影響を確かめます。
※スクレイピングで不動産会社の情報を拾い忘れました。拾いなおすのにクッソ時間かかるのでそこだけなかったことにします。申し訳ない…。
おまけ:ことの経緯
バカ高い物件について調べようと思った経緯を書いておきます。
この辺はあまり興味ない人もいると思いますので、気になる人だけぜひどうぞ。
LightGBMくんでも家賃がバカ高いことを予測できなかったことから始まる
そもそもとしてSUUMOの物件についていろいろ調べているのは、最終的に物件の家賃予測が出来るようにしようと考えているところにあります。
物件の様々な情報から家賃を推測しようってことですね。
「私の理想の物件、相場高すぎ…?」アプリとか作れたらいいなーと思っています。(少々先の話ですが)
して、前に書いた記事の通りにSUUMOの物件情報を集めて、モデルを使った回帰予測をしてみました。
ここで気が付いたのが、回帰予測で200万以上だと予測した物件がほとんどなかったんですね。
下にそれがわかるグラフを用意しました。
家賃が200万を超える物件はいくらかありますが、200万超えと予測した物件は1件だけでした。
※100万以下まで入れると見づらいのでカットしました。
あのLightGBMくんを使っているのだから、これがある程度妥当な予測なのだろうと思いました。
それってつまり、情報が足りない…ってコト!?
精度の高いLightGBMくんがバカ高い予測が出来なかったってことは、バカ高いと思えるだけの情報がないのではないか?と考えました。
内装そこそこなのに家賃をボッタくっている説もなくはないかもしれません
私がLightGBMに与えた情報は検索結果一覧のページに出てくる情報だけです。
各物件ごとに詳細な情報を載せているページがあり、そちらの情報は使用していません。
↓の詳細ページの情報は使っていない。これがあれば…?
詳細ページの中に家賃がバカ高いと判断できる情報が載せられているのではないか?という仮説を立てました。
特に特徴・設備の情報に可能性を感じています。
特徴・設備が充実しているほど家賃が上がりそうですし、中には高額物件にしかありえないオプションがあるかもしれません。
分析のためにスクレイピングしなおしました。
今回の記事では詳細ページの比較だけでしたが、今後モデル予測に使えるようにスクレイピングしなおしました。
物件1件ごとにアクセスをかける必要があるのでクッソ時間かかりました。土日丸ごと使っても終わりませんでした。
PC爆発するかと思った。もうやりたくない。
終わり。
いかがでしたでしょうか。
個人的には、専有面積を見れば家賃がだいたいわかりそうなところは、言われてみれば確かになるほどなぁーと感心していました。機械学習すげー。
逆に、家賃に関係ありそうな情報でも、モデル分析の上では別になくてもいいものもあるのも面白かったですね。
記事のまとめにも書いたとおり、物件の詳細情報を拾ってきたのでそれもモデルで学習して結果がどうなるか試してみます。
結果が面白くでも面白くなくても後編として記事にします。個人的にはどんな結果でも面白いと感じられそうな気がしますが。
後編も書きました
他のSUUMO記事