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

R语言实现数据集Top10高相关性数值特征筛选与阈值化输出

大数值数据集高相关特征对快速筛查R实现

针对包含69个数值列的CW_ModelDevelopment数据集,逐行核验全量相关矩阵的方式效率极低,可直接通过以下方案实现需求,逻辑和Python同场景实现完全对齐:

前置依赖

代码复用现有dplyr管道风格,仅需额外加载专门处理相关矩阵格式的corrr包,可自动处理自相关、重复变量对的冗余计算问题,不需要手动对矩阵做三角拆分。

功能实现

自定义阈值输出超阈值特征对

可自由设置相关系数阈值,仅保留关联强度超过设定值的变量对,同时将相关系数转换为百分比形式直观展示:

# 加载依赖包
library(dplyr)
library(corrr)

# 自定义相关系数阈值,例:设定为0.7
custom_cutoff <- 0.7

CW_ModelDevelopment %>%
  # 筛选全部数值型列
  select_if(is.numeric) %>%
  # 计算相关矩阵并转换为长表结构,和原代码cor()默认计算逻辑一致
  correlate(use = "pairwise.complete.obs") %>%
  # 移除矩阵上三角冗余的重复计算结果
  shave() %>%
  # 展平为可筛选的规整数据框
  stretch(na.rm = TRUE) %>%
  mutate(
    # 转换为百分比形式的相关强度,保留1位小数
    corr_percent = round(r * 100, 1),
    # 计算相关系数绝对值用于阈值判断和排序
    abs_corr = abs(r)
  ) %>%
  # 按自定义阈值过滤结果
  filter(abs_corr >= custom_cutoff) %>%
  # 按相关强度从高到低排序
  arrange(desc(abs_corr)) %>%
  # 选择最终输出的展示列
  select(变量1 = x, 变量2 = y, 原始相关系数 = r, 相关强度百分比 = corr_percent)

直接输出相关性Top10特征对

不需要设置阈值时,可直接提取关联强度最高的前10个变量对:

CW_ModelDevelopment %>%
  select_if(is.numeric) %>%
  correlate(use = "pairwise.complete.obs") %>%
  shave() %>%
  stretch(na.rm = TRUE) %>%
  mutate(
    corr_percent = round(r * 100, 1),
    abs_corr = abs(r)
  ) %>%
  # 按相关系数绝对值取排名前10的结果
  slice_max(order_by = abs_corr, n = 10) %>%
  select(变量1 = x, 变量2 = y, 原始相关系数 = r, 相关强度百分比 = corr_percent)

注意事项

  • 排序默认基于相关系数绝对值,可同时覆盖强正相关、强负相关的高关联特征,避免遗漏有实际意义的共线性特征
  • 若仅需筛选正相关的特征对,可在过滤逻辑中增加r > 0的判断条件
  • 代码中use = "pairwise.complete.obs"参数可避免存在缺失值时全列删除样本的问题,适配真实数据集的缺失值场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.24 02:06:02