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

预测模型精度计算中capital_gain作为解释变量的作用疑问

问题:预测建模代码中capital_gain变量的作用疑问

我正在学习某教材第10章的预测建模示例,在以下代码中,capital_gain被用作选择的变量,但移除它或替换为其他变量后,输出的估计值和混淆矩阵均无变化。请问该变量在此处存在的原因是什么?

library(yardstick)
pred <- train %>%
  select(income, capital_gain) %>% #why 'capital_gain' is here? 
  bind_cols(
    predict(mod_null, new_data = train, type = "class")
  ) %>%
  rename(income_null = .pred_class)
accuracy(pred, income, income_null)


confusion_null <- pred %>%
  conf_mat(truth = income, estimate = income_null)
confusion_null

补充说明:使用的是UCI成人收入数据集。


回答

这是因为代码里用到的mod_null是空模型(null model)——这类模型完全不依赖任何解释变量,只会基于目标变量income的整体分布做预测(比如预测样本占比更高的类别)。

select(income, capital_gain)这一步只是从train数据中筛选出这两列,但后续绑定的预测结果完全由mod_null生成,和筛选出的capital_gain没有任何关联。不管你保留、移除还是替换这个变量,都不会影响空模型的预测输出,自然也不会改变准确率和混淆矩阵的结果。

至于这个变量出现在此处的原因,大概率是作者的演示失误,或是为了刻意展示“空模型完全不依赖解释变量”这一特性——哪怕看似引入了解释变量,只要模型本身不调用它,结果就不会产生变化。


内容的提问来源于Stack Exchange,提问作者Espejito

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 09:22:47