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

tidymodels中step_corr()无法移除高相关性列?求助

问题分析与解决

你的代码逻辑本身没问题,但可能是以下原因导致高相关列未被移除:

1. 显式指定作用变量(稳妥做法)

虽然step_corr默认对所有预测变量生效,但显式指定all_predictors()可以避免潜在的变量识别问题:

rec <- recipe(y~x1+x2, data = df) %>%
  step_corr(all_predictors(), threshold=0.9) %>%
  prep(df)

2. 检查recipes包版本

旧版本的recipes包可能存在step_corr的逻辑bug,建议升级到最新版:

install.packages("recipes")

3. 验证步骤执行结果

执行prep后,可以通过以下命令查看step_corr实际移除了哪些变量:

# 查看第一步的操作细节
tidy(rec, number = 1)
# 查看最终保留的变量
summary(rec)

补充说明

step_corr默认会保留公式中先出现的变量,移除后续与它高相关的变量。比如你的案例中,x1先出现,所以会保留x1、移除x2。如果需要自定义保留逻辑,可以通过role参数或者配合step_select调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 05:29:53