使用yardstick绘制ROC/Lift/Gain曲线遇变量重命名错误求助
解决
Can't rename variables in this context错误(ROC/Lift/Gain曲线绘制) 以下是针对该错误的排查和解决步骤:
检查目标变量类型
yardstick的分类评估函数要求truth参数对应的变量必须是二分类因子(factor)。如果Personal_Loan是数值型(如0/1)或字符型,先转换为因子:final_pred$Personal_Loan <- factor(final_pred$Personal_Loan, levels = c("No", "Yes")) # 若为数值0/1: final_pred$Personal_Loan <- factor(final_pred$Personal_Loan, levels = c(0, 1), labels = c("No", "Yes"))验证预测列存在性
确认final_pred中确实存在.pred_Yes列,注意大小写是否匹配(比如有没有写成.pred_yes)。可通过colnames(final_pred)查看所有列名。更新整个tidymodels套件
仅更新yardstick可能不够,依赖包版本不兼容是常见诱因。运行以下命令更新所有相关包:install.packages("tidymodels")更新后重启R会话再测试代码。
手动指定事件水平
若函数无法自动识别正类(即"Yes"对应的类别),可显式指定事件水平:# ROC曲线示例 final_pred %>% roc_curve(truth = Personal_Loan, estimate = .pred_Yes, event_level = "second") %>% # 假设"Yes"是因子的第二个水平 autoplot()简化数据集测试
先提取必要列排除其他列的干扰:test_data <- final_pred %>% select(Personal_Loan, .pred_Yes) test_data %>% roc_curve(truth = Personal_Loan, estimate = .pred_Yes) %>% autoplot()
内容的提问来源于stack exchange,提问作者egoend
相关产品推荐
相关产品推荐

