TidyModels:仅当概率为75%或更高时才归类为真 [英] Tidymodels: Classify as TRUE only if the probability is 75% or higher
本文介绍了TidyModels:仅当概率为75%或更高时才归类为真的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个二进制分类问题,并使用了随机森林和Logistic回归。
根据conf_mat
、collect_metrics()
和collect_predictions
的结果,我想将我的模型更改为仅当该模型的概率为75%或更高时才归类为真。我只是不知道在哪里指定这个变化。如果有人能给我一个提示,那就太棒了。我的直觉告诉我,它应该在型号规范中的某个地方,例如这里的某个地方,但可能我错了。
canc_rf_model <- rand_forest(
mtry = tune(),
min_n = tune(),
trees = 500) %>%
set_engine("ranger") %>%
set_mode("classification")
canc_log_model <- logistic_reg() %>%
set_engine("glm") %>%
set_mode("classification")
提前谢谢您! M.
推荐答案
硬类预测来自基础ranger::predictions()
函数,而不是来自tidymodels函数,因此在匹配本身中没有什么可做的。
但是,如果您愿意,可以在试穿后非常流畅地更改此设置。让我们创建一个分类模型示例:
library(tidymodels)
#> Registered S3 method overwritten by 'tune':
#> method from
#> required_pkgs.model_spec parsnip
data("ad_data")
alz <- ad_data
# data splitting
set.seed(100)
alz_split <- initial_split(alz, strata = Class, prop = .9)
alz_train <- training(alz_split)
alz_test <- testing(alz_split)
# data resampling
set.seed(100)
alz_folds <-
vfold_cv(alz_train, v = 10, strata = Class)
rf_mod <-
rand_forest(trees = 1e3) %>%
set_engine("ranger") %>%
set_mode("classification")
rf_wf <-
workflow() %>%
add_formula(Class ~ .) %>%
add_model(rf_mod)
set.seed(100)
rf_preds <- rf_wf %>%
fit_resamples(
resamples = alz_folds,
control = control_resamples(save_pred = TRUE)) %>%
collect_predictions()
以下是默认混淆矩阵:
rf_preds %>%
conf_mat(Class, .pred_class)
#> Truth
#> Prediction Impaired Control
#> Impaired 37 5
#> Control 45 213
您可以使用probably包对您的类别概率估计进行后处理,只需覆盖默认值:
library(probably)
#>
#> Attaching package: 'probably'
#> The following objects are masked from 'package:base':
#>
#> as.factor, as.ordered
rf_preds %>%
mutate(.pred_class = make_two_class_pred(.pred_Impaired,
levels(rf_preds$Class),
threshold = 0.75),
.pred_class = factor(.pred_class, levels = levels(rf_preds$Class))) %>%
conf_mat(Class, .pred_class)
#> Truth
#> Prediction Impaired Control
#> Impaired 0 0
#> Control 82 218
由reprex package(v1.0.0)于2021-03-23创建
这篇关于TidyModels:仅当概率为75%或更高时才归类为真的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文