あるケミストの独り言(winchemwinの日記)

ケミスト(化学者)の視点で、面白そうな情報(シミュレーション関係など)を発信

機械学習による(中古)不動産価格の予測 その9 カテゴリー変数のダミー変数化

 前回までの記事で新たに建物構造、接道、道路の種類等のパラメーターを追加したモデルの作成について紹介させていただきました。前回のモデルでは上記パラメータを何らか参考指標をもとに、数値化を行っていたのですが、今回は上記のカテゴリー変数をダミー変数に変換してモデル作成を行った例について紹介します。

 以下は前回までに使用してきたパラメーターデータ型の一覧になります。

各パラメーターのデータ型

建物構造、接道、道路の種類に関する「建物の構造」、「前面道路:方位」、「前面道路:種類」はオブジェクト型ですので、前回の記事ではこれらを参考指標をもとに、それぞれ数値化し、「構造単価」、「道路方位分類」、「道路分類」のパラメータを作成していました。(データ一覧 その1) 

 

データ一覧 その1

 上記データ(数値データのみ)でのモデル作成の検討(前回の記事)では必ずしも良い結果が得られませんでしたので、今回はオブジェクト型のカテゴリー変数をダミー変数化してモデル作成を行ってみます。


 

ダミー変数への変換コード

 ダミー変数への変換はpandas のget_dummies を使うことで簡単に行うことができます。上記ではすでに作成したDataFrame(df)に対して、get_dummiesを適応し、新たなデータフレーム(df_N)を作成しています。以下はダミー変数化のパラメータのデータ型の一部です。

建物の構造、道路方位などがダミー変数化されていることがわかります。

 

各パラメーターのデータ型 変換後

 実際の変換後データフレームは以下のようで、ダミー変数化されたパラメータが追加されているのがわかります。

データ一覧 変換後

 実際に変換後のデータで予測モデルを作成していくのですが、コードは以前の「機械学習による(中古)不動産価格の予測その4」で紹介したものとほぼ同様ですので、詳細な説明は省きます。

コード1 ライブラリーのインポート等

コード2 説明変数、目的変数の設定

 説明変数ですが、前回の記事で数値化して追加した「構造単価」、「道路方位分類」、「道路分類」は使わずに今回はダミー変数として作成たパラメーターを説明変数に設定しています。

 

コード3 前処理

コード4 ハイパーパラメータ 検討設定

コード5 学習の実施、評価値等の算出

 

コード6 optunaによるハイパーパラメーターの最適化、学習

 データの前処理、学習、評価値の設定、optunaによるハイパーパラメーターの検討については以前の記事とほぼ同様です。

 

作成したモデルの結果

 今回ダミー変数化したパラメータを用いて作成したモデルの結果の一例は上記の通りで、決定係数R2値が0.3251となり、残念ながら良い結果とはなりませんでした。前回の記事の結果も考え合わせるとそもそも追加したパラメータがあまり良くなかったのかもしれません。

 以上、カテゴリー変数をダミー変数化した結果について紹介させていただきました。次回は新たにcatboost法で検討した結果について紹介したいと思います。