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

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

賃金構造基本調査のデータ分析 10 - tidymodelsのyardstickパッケージでモデル評価

www.crosshyou.info

の続きです。前回までで、lmエンジン、glmnetエンジン、kknnエンジン、rangerエンジンでsaralyを予測してきました。最後にこれらのモデルの評価をしましょう。

まずは、実際の saralyと各モデルの予測値を一つのデータフレームにまとめます。

回帰分析の場合の評価は、RMSE, R2, MAE で評価するのが一般的なので、この3つを評価基準に設定します。

そうしたら、それぞれのモデルを評価していきます。

まずは、lmエンジンです。

前に計算したとおり、RMSEは57.4です。R2(決定係数)は0.843、MAEは42.5でした。

glmnetエンジンを評価します。

RMSEは57.5, R2は0.842, MAEは42.5でした。

kknnエンジンを評価します。

RMSEは50.0, R2は0.885, MAEは35.3でした。

最後はrangerエンジンを評価します。

RMSEは49.5, R2は0.886, MAEは34.7でした。

この4つをまとめます。

評価基準ごとに並び替えてみます。

rangerエンジンのランダムフォレストモデルがRMSE, R2, MAE全ての評価基準で一番いい成績です。今回は以上です。

はじめから読むには、

 

www.crosshyou.info

です。

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

#
# 各モデルの予測値と実際のsaralyを一つにまとめる
results <- tibble(
  actual = df_test |> select(saraly) |> pull(),
  lm = predict(lm_fit, new_data = df_test) |> select(.pred) |> pull(),
  glmnet = predict(glmnet_final_fit, new_data = df_test) |> select(.pred) |> 
    pull(),
  knn = predict(kknn_final_fit, new_data = df_test) |> select(.pred) |> 
    pull(),
  rand_forest = predict(rf_final_fit, new_data = df_test) |> select(.pred) |> 
    pull()
)
results
#
# 評価基準の設定
kijun <- metric_set(rmse, rsq, mae)
#
# lm_fitの評価
lm_metric <- kijun(results, truth = actual, estimate = lm) |> 
  mutate(model = "lm") |> relocate(model)
lm_metric
#
# glmnet_final_fitの評価
glmnet_metric <- kijun(results, truth = actual, estimate = glmnet) |> 
  mutate(model = "glmnet") |> relocate(model)
glmnet_metric
#
# kknn_final_fitの評価
kknn_metric <- kijun(results, truth = actual, estimate = knn) |> 
  mutate(model = "knn") |> relocate(model)
kknn_metric
#
# rf_final_fitの評価
rf_metric <- kijun(results, truth = actual, estimate = rand_forest) |> 
  mutate(model = "rand_forest") |> relocate(model)
rf_metric
#
# 全てをまとめる
all_metrics <- bind_rows(lm_metric, glmnet_metric, kknn_metric, rf_metric)
all_metrics
#
# 評価基準別に並び替え
all_metrics |> 
  arrange(.estimate) |> 
  arrange(.metric)
#

 

(冒頭の画像は、Bing Image Creator で生成しました。プロンプトは、Closeup of white Hibiscus flowers and red Hibiscus flowers, flowering on the large grass fields, blue sky, some clouds, PHOTO です。)