広島の中古マンション価格をPythonで予測してみた

AI(人工知能)

広島の中古マンション価格をPythonで予測してみた

はじめに

Kaggle Courseで学ぶうち、ある程度は機械学習の知識がついてきたので、身近にあるデータセットを使って何か作りたくなってきました。

 

インターネット上で無料のデータセットがないか探してみたところ、国土交通省が不動産の取引価格情報を公開していたので、今回はこれを使ってみることにします。

国土交通省の不動産の取引価格情報について

国土交通省の不動産取引価格情報では、2005年から2020年までのデータがダウンロードできます。データ量はcsvにして877MBとなかなか膨大です。

データセットの例

データセットの例です。

中古マンションや土地、建物、農地など、いろいろな不動産の取引情報を見ることができます。

No 99999
種類 中古マンション等
地域 住宅地
市区町村コード 34101
都道府県名 広島県
市区町村名 広島市中区
地区名 江波本町
最寄駅:名称 広島
最寄駅:距離(分) 1H?1H30
取引価格(総額) 24000000
坪単価 600000
間取り 3LDK
面積(㎡) 65
取引価格(㎡単価) 600000
土地の形状 長方形
間口  10
延床面積(㎡)  100
建築年 平成28年
建物の構造 RC
用途 住宅
今後の利用目的 住宅
前面道路:方位 南西
前面道路:種類 市道
前面道路:幅員(m)  6
都市計画 近隣商業地域
建ぺい率(%) 80
容積率(%) 300
取引時点 2020年第3四半期
改装 未改装
取引の事情等 関係者間取引

データセットの活用方法

今回は「間取り」や「面積(㎡)」などの情報から「取引価格」を予測したいと思います。

 

環境

開発環境

Jupyter notebook

使用したライブラリ、モジュールなど

codecs:日本語のテーブルの読み込み
pandas:データフレームの使用
sklearn:訓練データとテストデータの分割、欠損値処理など
xgboost:機械学習モデル

ソースコード公開

GitHubにアップしてみました。以下で、ソースコードの概要を説明しています。

処理の流れ

不動産価格予測のざっくりとした流れは、以下の通りです。

ライブラリ、データの読み込み

  • ライブラリの読み込み
  • CSVファイルを読み込んでXに格納
  • 「取引価格(総額)」Xからをyに移す
  • X, yを訓練データと評価データ(X_train, X_valid, y_train, y_valid)に分割

訓練データはモデルの学習のために、評価データは学習済みモデルの性能評価のために使います。

データの前処理

  • X_train, X_validのすべてのカテゴリ変数をワンホットエンコーディング

ワンホットエンコーディングについては、過去の記事で解説しています。

学習

  • XGBoostモデルで訓練データX_train, y_validを学習

今回はパラメータはすべてデフォルトのままです。それでもある程度の性能が出るのは、XGBoostのすごいところですね。

予測

  • 学習済みモデルを使って、評価データX_validから取引価格(総額)を予測

評価

  • 予測値と評価データy_validから、平均絶対誤差(MAE)を計算

本当は100万円くらいの誤差を目指したかったのですが、マンションの価格に大きな影響のある階数のデータが得られなかったので、ここらへんで妥協しました

突っ込みどころやその他アイデアなどありましたら、コメント欄やツイッターでお寄せいただけるとうれしいです!

以上、最後までお読みいただきありがとうございました。

 

コメント

タイトルとURLをコピーしました