『評価指標入門』をRで書く:多クラス分類の評価指標
『評価指標入門』をRで書く
この記事はR言語 Advent Calendar 2023 シリーズ2の16日目の記事です。
多クラス分類の評価指標
パッケージの呼び出し。
library(tidyverse) library(palmerpenguins) library(rsample) library(yardstick) library(ranger)
ペンギンの種類を判別するランダムフォレストのモデル。
pen_split <- penguins |> mutate(year = as.factor(year)) |> drop_na() |> initial_split(prop = 0.2, strata = species) pen_train <- pen_split |> training() pen_test <- pen_split |> testing() fit_m_class <- pen_train |> ranger(species ~ ., data = _) pred_test <- pen_test |> predict(fit_m_class, data = _)
以下の評価指標を算出
- 正解率(Accuracy)
- 適合率(Precision ; 精度)[macro, micro, weighted]
- 再現率(Recall, True Positive Rate ; TPR ; 感度)[macro, micro, weighted]
- F1-score[macro, micro, weighted]
# 正解率(Accuracy) accuracy_vec(pen_test$species, pred_test$predictions) # 適合率(Precision ; 精度) precision_vec(pen_test$species, pred_test$predictions, estimator = "macro") precision_vec(pen_test$species, pred_test$predictions, estimator = "micro") precision_vec(pen_test$species, pred_test$predictions, estimator = "macro_weighted") # 再現率(Recall, True Positive Rate ; TPR ; 感度) recall_vec(pen_test$species, pred_test$predictions, estimator = "macro") recall_vec(pen_test$species, pred_test$predictions, estimator = "micro") recall_vec(pen_test$species, pred_test$predictions, estimator = "macro_weighted") # F1-score f_meas_vec(pen_test$species, pred_test$predictions, estimator = "macro") f_meas_vec(pen_test$species, pred_test$predictions, estimator = "micro") f_meas_vec(pen_test$species, pred_test$predictions, estimator = "macro_weighted")
ペンギンの種類の確率を推定するランダムフォレストのモデル。
fit_m_class_p <- pen_train |> ranger(species ~ ., data = _, probability = TRUE) pred_test <- pen_test |> predict(fit_m_class_p, data = _)
ROC-AUCの算出
roc_auc_vec(pen_test$species, pred_test$predictions)
以上です。