前回までの記事で新たに建物構造、接道、道路の種類等のパラメーターを追加したモデルの作成について紹介させていただきました。前回のモデルでは上記パラメータを何らか参考指標をもとに、数値化を行っていたのですが、今回は上記のカテゴリー変数をダミー変数に変換してモデル作成を行った例について紹介します。
以下は前回までに使用してきたパラメーターデータ型の一覧になります。
建物構造、接道、道路の種類に関する「建物の構造」、「前面道路:方位」、「前面道路:種類」はオブジェクト型ですので、前回の記事ではこれらを参考指標をもとに、それぞれ数値化し、「構造単価」、「道路方位分類」、「道路分類」のパラメータを作成していました。(データ一覧 その1)
上記データ(数値データのみ)でのモデル作成の検討(前回の記事)では必ずしも良い結果が得られませんでしたので、今回はオブジェクト型のカテゴリー変数をダミー変数化してモデル作成を行ってみます。
ダミー変数への変換はpandas のget_dummies を使うことで簡単に行うことができます。上記ではすでに作成したDataFrame(df)に対して、get_dummiesを適応し、新たなデータフレーム(df_N)を作成しています。以下はダミー変数化のパラメータのデータ型の一部です。
建物の構造、道路方位などがダミー変数化されていることがわかります。
実際の変換後データフレームは以下のようで、ダミー変数化されたパラメータが追加されているのがわかります。
実際に変換後のデータで予測モデルを作成していくのですが、コードは以前の「機械学習による(中古)不動産価格の予測その4」で紹介したものとほぼ同様ですので、詳細な説明は省きます。
説明変数ですが、前回の記事で数値化して追加した「構造単価」、「道路方位分類」、「道路分類」は使わずに今回はダミー変数として作成たパラメーターを説明変数に設定しています。
データの前処理、学習、評価値の設定、optunaによるハイパーパラメーターの検討については以前の記事とほぼ同様です。
今回ダミー変数化したパラメータを用いて作成したモデルの結果の一例は上記の通りで、決定係数R2値が0.3251となり、残念ながら良い結果とはなりませんでした。前回の記事の結果も考え合わせるとそもそも追加したパラメータがあまり良くなかったのかもしれません。
以上、カテゴリー変数をダミー変数化した結果について紹介させていただきました。次回は新たにcatboost法で検討した結果について紹介したいと思います。