You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 04:42:13