Rで何かをしたり、読書をするブログ

政府統計の総合窓口のデータや、OECDやUCIやのデータを使って、Rの練習をしています。ときどき、読書記録も載せています。

都道府県別の商業動態統計調査のデータの分析5 - tidymodelsによるレシピとワークフローの作成

www.crosshyou.info

の続きです。前回は8つのモデルを作成しました。今回はレシピとワークフローを作成しましょう。さくさく行きます。

まずは、線形モデルからです。

今回のデータは特に異常な外れ値や分布の偏りはないので、前処理は必要ないでしょう。

次は、ペナルティ付き線形モデル(Elastic-Net)です。

ペナルティ付き線形モデルでは、標準化は必要です。

次は、決定木モデルです。

ツリーモデルでは標準化は必要ありません。ランダムフォレストモデルも同じです。

サポートベクター回帰(SVR)モデルは標準化は必要です。

k-NN回帰モデルも距離ベースのモデルなので、標準化は必要です。

ニューラルネットワークモデルも標準化は必要です。

勾配ブースティング回帰モデルも標準化は必要です。

これで8つのレシピができました。モデルによっては標準化が不要なものと必要なものがありますよね。Copilot先生にまとめてもらいました。

たまたまですが、標準化不要なモデルが4つ、必要なモデルが4つと半々にわかれましたね。

モデル、レシピを結合してワークフローを作成します。これは特にモデルによって変更する部分はないです。workflow()とadd_model()とadd_recipe()です。

今回は以上です。

次回は、

www.crosshyou.info

です。

 

はじめから読むには、

www.crosshyou.info

です。

今回のコードは以下になります。

#
# 2. レシピ作成
# 2-1. 線形モデル(lm)
lm_rec <- recipe(target ~ ., data = train_data) # 前処理は不要
#
# 2-2. ペナルティ付き線形モデル(glmnet)
glmnet_rec <- recipe(target ~ ., data = train_data) |> 
  step_normalize(all_predictors()) # 前処理は標準化のみ
#
# 2-3. 決定木モデル(rpart)
rpart_rec <- recipe(target ~ ., data = train_data) # 前処理は不要
#
# 2-4. ランダムフォレストモデル(ranger)
ranger_rec <- recipe(target ~ ., data = train_data) # 前処理は不要
#
# 2-5. サポートベクター(SVR)回帰モデル(kernlab)
kernlab_rec <- recipe(target ~ ., data = train_data) |> 
  step_normalize(all_predictors()) # 前処理は標準化のみ
#
# 2-6. k-NN回帰モデル(kknn)
kknn_rec <- recipe(target ~ ., data = train_data) |> 
  step_normalize(all_predictors()) # 前処理は標準化のみ
#
# 2-7. ニューラルネットワークモデル(nnet)
nnet_rec <- recipe(target ~ ., data = train_data) |> 
  step_normalize(all_predictors) # 前処理は標準化のみ
#
# 2-8. 勾配ブースティング回帰モデル(xgboost)
xgboost_rec <- recipe(target ~ ., data = train_data) # 前処理は不要
#
# 3. ワークフローを作成
# 3-1. 線形モデル(lm)
lm_wf <- workflow() |> 
  add_model(lm_mod) |> 
  add_recipe(lm_rec)
#
# 3-2. ペナルティ付き線形モデル(glmnet)
glmnet_wf <- workflow() |> 
  add_model(glmnet_mod) |> 
  add_recipe(glmnet_rec)
#
# 3-3. 決定木モデル(rpart)
rpart_wf <- workflow() |> 
  add_model(rpart_mod) |>
  add_recipe(rpart_rec)
#
# 3-4. ランダムフォレストモデル(ranger)
ranger_wf <- workflow() |> 
  add_model(ranger_mod) |> 
  add_recipe(ranger_rec)
#
# 3-5. サポートベクター回帰(SVR)モデル(kernlab)
kernlab_wf <- workflow() |> 
  add_model(kernlab_mod) |> 
  add_recipe(kernlab_rec)
#
# 3-6. k-NN回帰モデル(kknn)
kknn_wf <- workflow() |> 
  add_model(kknn_mod) |> 
  add_recipe(kknn_rec)
#
# 3-7. ニューラルネットワークモデル(nnet)
nnet_wf <- workflow() |> 
  add_model(nnet_mod) |> 
  add_recipe(nnet_rec)
#
# 3-8. 勾配ブースティング回帰モデル(xgboost)
xgboost_wf <- workflow() |> 
  add_model(xgboost_mod) |> 
  add_recipe(xgboost_rec)
#

(冒頭の画像は、Bing Image Creator で生成しました。プロンプトは Natural landscape of green grass fields, close up of yellow Hamamelis japonica flowers of trees, Photograph です。)