使用tidymodels绘制ROC曲线报错:无法在此上下文重命名变量
解决tidymodels绘制ROC曲线时的重命名错误
可能的原因及对应解决步骤
1. 未明确指定响应变量与预测概率列
roc_curve() 需要明确指定二分类响应列(truth参数)和正类预测概率列(estimate参数),未指定时自动推断失败会触发重命名错误。
正确调用示例(假设目标列名为churn,正类为yes):
library(yardstick) roc_results <- predictions %>% roc_curve(truth = churn, estimate = .pred_yes) # 绘制ROC曲线 autoplot(roc_results)
2. 目标列不是因子类型
yardstick的roc_curve要求二分类响应变量必须是因子类型,字符或数值类型会导致错误。检查并转换:
# 将目标列转换为因子,指定类别顺序 predictions <- predictions %>% mutate(churn = factor(churn, levels = c("no", "yes")))
若正类是第一个水平,可在roc_curve中添加event_level = "first"参数指定。
3. 数据绑定时出现列名冲突
使用bind_cols(bank_train)可能引入冗余列,甚至和预测列重名。建议只绑定目标列:
predictions <- predict(model_bagged, bank_train, type = "prob") %>% bind_cols(bank_train %>% select(churn)) # 仅保留目标列,减少冗余
4. yardstick包版本过旧
旧版本yardstick存在类似重命名bug,更新到最新版本即可:
update.packages("yardstick")
内容的提问来源于stack exchange,提问作者Lillian Welsh
相关产品推荐
相关产品推荐

