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

如何在tidymodels中将虚拟模型/启发式规则指定为模型?

在tidymodels/workflowsets中整合启发式规则基准模型

要在tidymodels生态里把启发式规则和ML模型统一对比,核心是把规则包装成符合parsnip接口的“模型”,这样就能无缝接入workflowset流程。以下是具体实现步骤:

1. 加载依赖包

library(tidymodels)
library(workflowsets)
library(tibble)

2. 准备示例数据

set.seed(123)
# 模拟符合启发式规则的二分类数据
data <- tibble(
  x1 = rnorm(100, mean = 3),
  x2 = rnorm(100, mean = 1),
  y = factor(ifelse((x1 > 3)|(x2 < 1), "yes", "no"), levels = c("no", "yes"))
)

3. 定义启发式规则模型

通过parsnip自定义一个无需训练的模型,核心是实现fit(空操作)和predict(应用规则)两个函数:

# 创建自定义模型规格
heuristic_spec <- parsnip::new_model_spec(
  "heuristic_rule",
  args = list(),
  eng_args = list(),
  mode = "classification"
) %>%
  # 绑定自定义引擎逻辑
  parsnip::set_engine(
    "function",
    # 拟合阶段无需训练,直接返回规则标识
    fit = function(x, y) {
      list(rule = "(x1 > 3) | (x2 < 1)")
    },
    # 预测阶段应用规则生成结果
    predict = function(object, new_data) {
      pred <- factor(
        ifelse((new_data$x1 > 3) | (new_data$x2 < 1), "yes", "no"),
        levels = c("no", "yes")  # 必须与原数据因子水平一致
      )
      tibble(.pred_class = pred)
    }
  )

4. 定义对比用的ML模型

# 逻辑回归
log_reg_spec <- logistic_reg() %>%
  set_engine("glm") %>%
  set_mode("classification")

# 随机森林
rf_spec <- rand_forest(mtry = 2, trees = 100) %>%
  set_engine("ranger") %>%
  set_mode("classification")

5. 构建workflowset并拟合

# 整合所有模型到工作流集合
wf_set <- workflow_set(
  preproc = list(basic = recipe(y ~ x1 + x2, data = data)),
  models = list(
    heuristic = heuristic_spec,
    logistic_reg = log_reg_spec,
    random_forest = rf_spec
  ),
  cross = TRUE
)

# 批量拟合所有模型
wf_fit <- wf_set %>% workflow_map("fit", data = data)

6. 统一评估对比

用yardstick的指标统一计算所有模型的表现:

# 提取并整理评估指标
metrics_summary <- wf_fit %>%
  collect_metrics(summarize = FALSE) %>%
  filter(.metric %in% c("accuracy", "roc_auc")) %>%
  select(wflow_id, .metric, .estimate) %>%
  pivot_wider(names_from = .metric, values_from = .estimate)

print(metrics_summary)

这样就能把启发式规则和ML模型放在同一框架下对比,所有流程完全遵循tidymodels的范式,无需额外的特殊处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 14:05:22