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

使用Tidymodels的C5_rules()拟合分类模型报错如何解决?

你目前仅完成了C5.0规则模型的规格定义,还未将模型规格与训练数据绑定完成拟合,底层C5.0对象没有生成实际的分类规则,所以预测时会抛出缺失规则/树的错误。


必要补充步骤

1. 确认依赖包加载

C5_rules() 属于rules扩展包,拟合前需确保已加载:

library(rules)
library(tidymodels)

2. 完成模型拟合

有两种常用的拟合方式:

方式一:直接用fit()对接公式和训练数据

适合无复杂预处理的场景,直接将模型规格与公式、训练数据绑定拟合:

# 替换为你的训练数据集、目标变量名和特征公式
c5_fit <- c5_spec %>%
  fit(目标变量名 ~ ., data = 训练数据集)

方式二:通过workflow绑定后拟合(更推荐)

适合搭配复杂预处理、重抽样评估的场景,也是tidymodels的标准实践:

library(workflows)

# 构建工作流,绑定预处理(这里用公式为例,也可绑定recipe)和模型
c5_wf <- workflow() %>%
  add_formula(目标变量名 ~ .) %>%
  add_model(c5_spec)

# 传入训练数据完成拟合
c5_fit <- c5_wf %>%
  fit(data = 训练数据集)

3. 验证拟合结果

拟合完成后可直接调用predict()做预测,不会再触发报错:

# 替换为你的测试数据集
predict(c5_fit, new_data = 测试数据集)

常见踩坑提示

你报错信息中出现preprocessor 1/1, model 1/1说明你可能在使用fit_resamples()做重抽样评估,这时候需注意:

  • 传入fit_resamples()的必须是同时绑定了预处理和模型的workflow,不能直接传入未绑定预处理的模型规格
  • 如果同时在做超参数调优,需要先在C5_rules()中为待调参数设置tune()占位符,改用tune_grid()执行调优流程,不能直接用fit_resamples()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 14:45:03