LoginSignup
2
3

More than 1 year has passed since last update.

そろそろ引越しだから賃貸を選ぶのは機械学習に任せよう

Posted at

悩み

そろそろ引越しをするんですが、今回も賃貸を選ぶのに後悔が残りそうです。

何とかどこかの工程を自動化できないものか…と思いついたのが、賃貸サイトをWebスクレイピングして情報収集し機械学習で判断してもらうことです。

お得な賃貸を探そう

どういった条件で賃貸物件を探すかは人それぞれですが、お得であればあるほどいいというは誰でもそうですよね?

機械学習を使うと賃料を予測することが可能です。それなので、機械学習を使って賃料の予測価格を算出し、実際価格と比較しようという魂胆です。言い換えると実際価格が予測価格よりも低ければ、お得な賃貸ということが言えます。

それを目指して、機械学習のフローをやってみます。

結果から

まずは結果から示します。

某賃貸サイトを解析すると前処理によって次のデータを得られました。一部分だけ記載します。

※1. 本記事は具体的な土地情報は伏せて、番号で記載しています。
※2. なお、今回特徴量は間取り(部屋数でDK, K , L , Sがない場合はワンルーム)、間取り、築年数、建物高さ、階、専有面積、敷金と礼金です。駅からの近さ、立地も入れたほうがいいのでは?という疑問が残りますが、暫定的にこれらを特徴量としました。

番号 間取り 間取りDK 間取りK 間取りL 間取りS 築年数 建物高さ 専有面積 賃料+管理費 敷/礼 路線1 駅1 徒歩1 賃料 管理費 敷金 礼金 予測価格 test-predict ratio[%]
1 1 1 0 1 0 24 10 4 36 145000 290000 JR総武線 御茶ノ水駅 4 145000 0 145000 145000 145000 0 0.0
2 1 0 0 0 0 8 10 6 25 121000 109000 JR中央線 水道橋駅 2 109000 12000 0 109000 121000 0 0.0
3 3 1 0 1 0 24 8 7 90 278300 542600 東京メトロ日比谷線 小伝馬町駅 4 271300 7000 271300 271300 290000 -11700 4.2
4 1 0 0 0 0 42 11 11 22 70000 128000 JR総武線快速 馬喰町駅 3 64000 6000 64000 64000 95000 -25000 35.7
5 1 0 0 0 0 17 14 2 25 110000 100000 東京メトロ東西線 九段下駅 1 100000 10000 100000 0 110000 0 0.0

予測価格の列がランダムフォレストで算出した価格、test-predict列が実際の価格から予測価格を引いた値です。test-predict < 0になっていればお得な物件というのがわかります。最後にratio[%]は(test-predict)/(実際の価格)×100 の値です。この値が高ければ高いほどお得です。

この中だと、4番の物件がratioが高く、お得という結果が出ました。
築年数は44年ですが、ワンルーム、賃料+管理費が70,000円です。東京都ならあり得そうですが、私はド田舎者なので残念ながら価格感がありません…。

設計の概要

全体の処理の流れは次のようになります。
flow.png

賃貸サイトからHTMLの情報を取得し解析します。そして、機械学習が読めるようにデータを整形し、価格を予測。最後に"(実際価格) - (予測価格) < 0"になれば、その物件はお得であることがわかります。

実際のコード

この記事では、アイデアと設計を提供します。コードを解説すると、煩雑な記事になってしまうと思ったため、コードはGithubに公開することにしました。

先人もいますので、詳しくはそちらにお任せします。

実際に実行したい、または実装の参考にしたいという方はGithubをご覧ください。

【Github】【Webスクレイピングと前処理】賃貸サイトからお得な賃貸を機械学習で選定する

【Github】【機械学習】賃貸サイトからお得な賃貸を機械学習で選定する

まとめ

機械学習で賃貸の賃料を予測し、価格差でお得な物件を探してみました。

機械学習に任せると無限にある物件でも、お得な物件を絞ることができました。これで時間の節約ができます。

我々エンジニアには賃貸を優雅に見る余裕はありません。全工程を自動化していきたい。

2
3
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
2
3