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

R语言用ROCR包prediction函数绘制ROC曲线重复运行报错求助

ROC绘制时prediction函数重复运行报错解决方案

根因说明

报错的核心原因是R包命名空间冲突:
forecast等时间序列分析包中存在同名的prediction()函数,会覆盖ROCR包的prediction()方法。首次运行R环境未加载冲突包时,调用的是ROCR的分类场景prediction方法,可正常执行;后续环境加载冲突包后,调用的prediction()实际是时序场景的函数,需要调用ets()做时间序列拟合,和ROC计算的分类场景不匹配,因此抛出对应报错。

可行解决方案

  • 最稳妥的修复方案是显式指定调用ROCR包的prediction函数,无需调整包加载顺序,修改代码对应行即可:
# 原代码的prediction替换为ROCR::prediction
train.pred <- ROCR::prediction(predict(LOL.out,type="response"),LOL.train$Win)
  • 若需要频繁调用该函数,也可以在加载冲突包时屏蔽同名方法,以forecast包为例:
library(forecast, exclude = "prediction")
  • 可执行以下命令确认当前prediction函数的来源,快速排查冲突:
find("prediction")
# 正常预期首个输出为"package:ROCR",如果首个为其他包则说明存在命名冲突
  • 额外排查:检查全局工作环境中是否存在命名为prediction的自定义变量/函数,存在的话执行rm(prediction)清除即可。

内容的提问来源于stack exchange,提问作者Jason

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 00:36:04