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

R caret包调优C5.0时将minCases加入tuneGrid报错如何解决?

错误原因及解决方案

核心报错原因:自定义模型参数表处理异常

你在GetC5Info函数中修改C5.0的模型参数配置时,先将parameter、label两列转为了factor类型,后续直接拼接字符向量时,新参数名无法匹配已有的factor水平,直接被识别为NA,这就是报错信息里三个NA列的来源。
将GetC5Info函数中更新参数表的代码替换为如下内容即可修复该问题:

# 删除原有的参数表修改代码,替换为以下内容
c5ModelInfo$parameters <- rbind(
  c5ModelInfo$parameters,
  data.frame(
    parameter = "splits",
    class = "numeric",
    label = "Splits"
  )
)

直接拼接结构化数据框会自动兼容factor水平,不需要手动修改factor配置。

其他需要修正的问题

  1. 调参网格的参数设置错误
    你构造grida时给.winnow赋值为字符串"FALSE",但模型要求传入逻辑值,同时自定义模型的调参名不需要加.前缀,修改为:
grida <- expand.grid(
  winnow = FALSE,
  trials = c(1,5,10,15,20),
  model = "tree",
  splits = c(2,5,10,15,20,25,50,100)
)
  1. 缺失依赖包加载
    你在C5CustomLoop函数中用到了plyr包的ddply工具,需要在代码开头引入依赖:
library(plyr)

以上三处修改完成后,模型即可正常训练。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 10:27:04