尝试探索随机森林指标时,如何修复 Tidymodels 中的"Error in validate_function_class():"


`# Create a split object
train_test_split <-
rsample::initial_split(
data = nomissingprep,     
prop = 0.80   
) 
# Split the data and build a training and testing data set
train_test_split <- rsample::initial_split(data = nomissingprep,prop = 0.80) 
train.data <- train_test_split %>% training() 
test.data  <- train_test_split %>% testing()
## Recipe Creation
rec <- recipe(preprecentyear ~ ., data = train.data)

## Validation Set
cv_folds <-
vfold_cv(train.data, 
v = 5, 
strata = preprecentyear) 
## Model Fitting -- Random Forest 
library(ranger)
rf_spec <- 
rand_forest() %>% 
set_engine("ranger", importance = "impurity") %>% 
set_mode("classification")
## Workflow --Random Forest 
rf_wflow <-
workflow() %>%
add_recipe(rec) %>% 
add_model(rf_spec) 
##Random Forest Metrics
rf_res <-
rf_wflow %>% 
fit_resamples(
resamples = cv_folds, 
metrics = metric_set(
recall, precision, f_meas, 
accuracy, kap,
roc_auc, sens, spec),
control = control_resamples(save_pred = TRUE)
)
`

validate_function_class()中的错误:!度量函数的组合必须是:

  • 仅限数字度量
  • 类度量和类概率度量的混合

以下度量函数类型正在混合使用:

  • 其他(调用名称空间:插入符号,精度名称空间:插符号,规范名称空间:readr(
  • 等级(f_meas、精度、kap、sens(
  • prob(roc_auc(

我不确定如何修复此错误。随机森林度量之前的所有其他代码都很适合。任何建议都非常受欢迎。感谢

log_res <- 
tidymodels::tidymodels_prefer( log_wflow %>% 
fit_resamples(
resamples = cross_validation, 
metrics = metric_set(
kap, sensitivity, specificity, precision_vec,  recall_vec),
control = control_resamples(
save_pred = TRUE)
) 
)  
log_res 

试试这个方法。

最新更新