『評価指標入門』をRで書く:回帰の評価指標

『評価指標入門』をRで書く

この記事はR言語 Advent Calendar 2023 シリーズ2の12日目の記事です。

qiita.com

はじめに

2023年3月に出た『評価指標入門』という本がとても良かったのだけど、これまた公開されてるコードがPythonで。

github.com

南無阿弥陀仏南無阿弥陀仏

いや、分かる。
分かるんだが。
分かるんだけど、やっぱりRで書きたいじゃん?

ということで、Rで書きます。

おことわり

  • 解説は書きません。ぜひ書籍の方をお読みください。
  • 特徴量エンジニアリングの部分はすっ飛ばして、評価指標の算出に絞っています。
  • まちがいやより良い書き方があったらご指摘ください。

回帰の評価指標

パッケージの呼び出し。

library(tidyverse)
library(palmerpenguins)
library(rsample)
library(MLmetrics) 
library(ranger)

ペンギンのデータで体重を目的変数にした回帰のランダムフォレストを例とします。

pen_split <- penguins |>
  mutate(year = as.factor(year)) |>
  drop_na() |>
  initial_split(prop = 0.2, strata = body_mass_g)

pen_train <- pen_split |>
  training()

pen_test <- pen_split |>
  testing()

fit_regression <- pen_train |>
  ranger(body_mass_g ~ ., data = _)

pred_test <- pen_test |>
  predict(fit_regression, data = _)

以下の評価指標を算出

  • 平均絶対誤差(Mean Absolute Error ; MAE)
  • 平均絶対パーセント誤差(Mean Absolute Percentage Error ; MAPE)
  • 二乗平均平方誤差(Root Mean Squared Error ; RMSE)
  • 対数平均二乗誤差(Root Mean Squared Log Error ; RMSLE)
  • 平均二乗誤差(Mean Squared Error ; MSE)
  • 決定係数
MAE(pred_test$predictions, pen_test$body_mass_g)
MAPE(pred_test$predictions, pen_test$body_mass_g)
RMSE(pred_test$predictions, pen_test$body_mass_g)
RMSLE(pred_test$predictions, pen_test$body_mass_g)
MSE(pred_test$predictions, pen_test$body_mass_g)
R2_Score(pred_test$predictions, pen_test$body_mass_g)

以上です。