特征筛选

方法概述

特征筛选是特征工程中重要的前置环节,目的是从原始数据中挑选对建模任务有价值的特征,剔除方差过小、相互冗余或与目标无关的变量,从而精简特征集、降低维度、提升建模效率。本工具提供方差筛选、相关系数筛选、互信息筛选、模型重要性筛选以及综合排序选取 Top N 等多种模式。方差与相关系数筛选可在无目标列时独立完成;互信息与模型重要性筛选则需要指定目标列。工具内置 AI 智能分析,可对筛选结果进行解读并给出后续建议,适用于回归、分类、聚类等各类建模前的特征预处理。

计算步骤

1. 数据加载与预处理

  • 文件读取:支持 CSV 和 Excel 格式,自动识别常用缺失值占位符(如 """NA""null""?" 等)并转换为 NA
  • 列类型智能转换:对于字符型列,若超过 80% 的值可转换为数值,则自动转为数值列,便于特征计算。
  • 空行/列清理:删除完全为空的行和列。

2. 筛选方法

用户可从以下方法中选择:

  • 方差筛选
    计算每个数值特征的方差: \[Var(x) = \frac{1}{n-1}\sum_{i=1}^{n}(x_i - \bar{x})^2\] 方差低于阈值(默认 0.01)的特征视为近似常数、信息量低,予以剔除。

  • 相关系数筛选
    对特征两两计算 Pearson 相关系数: \[r = \frac{\sum_i (x_i-\bar{x})(y_i-\bar{y})}{\sqrt{\sum_i (x_i-\bar{x})^2 \cdot \sum_i (y_i-\bar{y})^2}}\]\(|r|\) 超过阈值(默认 0.9)时,该对特征冗余,工具保留其中方差较大的一个,剔除另一个。

  • 互信息筛选
    先将连续数值离散化为 10 个等宽区间,再基于信息熵计算特征与目标列的互信息: \[I(X;Y) = \sum_{x}\sum_{y} p(x,y) \log_2 \frac{p(x,y)}{p(x)p(y)}\] 互信息可以度量特征与目标之间的非线性关联,需指定目标列。

  • 模型重要性筛选
    使用集成树模型训练并计算各特征的平均降低精度指标(MDA),数值越大表示该特征对预测目标越重要。需指定目标列,样本数至少 10 行。

  • 综合模式(推荐)
    依次执行方差、相关系数筛选,若指定目标列再补充互信息与重要性计算,最后对各指标分别排名并求和,按排名得分选取前 N 个特征(默认 10)。

3. 结果输出

  • 筛选后数据预览:展示保留特征(含目标列)的数据。
  • 特征评分明细表:列出各特征的方差、互信息、重要性及综合排名得分。
  • 筛选摘要:说明采用的筛选步骤、筛选前后特征数、保留与剔除的特征名称。

4. AI 智能分析

基于筛选摘要(方法、保留/剔除特征、特征数变化等),调用大语言模型评估筛选合理性并给出建模建议(每日限 3 次,需配置 API 密钥)。

5. 结果导出

  • 下载筛选后数据(CSV 或 Excel 格式)。
  • 下载包含筛选摘要、保留特征与数据预览的 HTML 报告。

案例分析

案例背景:某机构整理了 12 名客户的特征数据,共 6 个候选特征,并记录了是否成交(目标列)。部分特征变化很小或彼此高度相关,现需筛选出有效的建模特征。

输入数据(示例)

客户编号 年龄 近一年消费次数 平台活跃天数 登录设备数 累计积分 是否成交
1 32 15 42 2 8800
2 45 8 25 1 3200
3 28 22 58 3 12600

处理过程

  1. 数据加载:上传 CSV,工具自动将缺失符号转为 NA 并智能转换列类型。
  2. 方法选择:采用综合模式,目标列选择”是否成交”,方差阈值 0.01,相关系数阈值 0.9,Top N=5。
  3. 执行筛选(示例结果):
    • 方差筛选:剔除方差低于 0.01 的”登录设备数”等近似常数特征。
    • 相关筛选:检测到”平台活跃天数”与”近一年消费次数” \(|r|>0.9\),保留方差较大者。
    • 互信息/重要性:计算剩余特征与”是否成交”的关联及重要性并综合排名。
  4. 结果摘要(示例):筛选前 7 列(含目标列),筛选后保留”近一年消费次数、累计积分、年龄、登录设备数”等 5 列;评分明细表给出各特征的综合排名得分。

结论:在本示例数据上,保留的特征与成交行为关联较密切,剔除的特征信息贡献有限,可用于后续建模。结论仅针对该示例数据,实际效果需结合业务验证。

常见问题

Q1: 不指定目标列时能否进行特征筛选?
A: 可以。方差筛选和相关系数筛选不依赖目标列;仅互信息和模型重要性筛选需要目标列。未指定目标列时,综合模式会跳过这两步。

Q2: 方差阈值设多少合适?
A: 取决于数据的量纲和尺度。默认 0.01 适合多数标准化后的特征;若特征原始量纲差异较大,建议先检查方差分布再调整阈值。

Q3: 相关系数阈值 0.9 会误删有用特征吗?
A: 两特征在 \(|r|>0.9\) 时信息近似重复,通常保留一个即可。但若两个特征具有独立的领域含义,可调低阈值或事后人工确认。

Q4: 目标列应为分类还是数值?
A: 工具对目标列与各特征的关联均支持参与计算。互信息会按类别或离散化处理,重要性计算基于树模型,均能处理分类与数值目标,但需注意类别样本量不宜过少。

Q5: 随机种子起什么作用?
A: 模型重要性计算依赖随机过程,固定随机种子可使结果可复现,便于不同批次分析保持一致。

平台功能

  • 数据输入:支持 CSV、Excel 格式,自动识别缺失值并智能转换列类型,自动清理空行/空列。
  • 筛选方法:提供方差、相关系数、互信息、模型重要性、综合筛选、综合排序取前 N 共 6 种模式。
  • 参数设置:方差阈值(默认 0.01)、相关系数阈值(默认 0.9)、保留特征数 Top N(默认 10)、随机种子(默认 123)。
  • 目标列:可指定一个目标列,启用互信息与重要性计算。
  • 结果展示
    • 原始数据与筛选后数据双预览。
    • 特征评分明细表(方差、互信息、重要性、综合排名得分)。
    • 筛选摘要(步骤说明、前后特征数、保留/剔除特征)。
  • AI 智能分析:自动评估筛选合理性并给出建模建议(每日限 3 次,需配置 API 密钥)。
  • 报告下载:支持下载筛选后数据(CSV/Excel)和包含摘要与预览的 HTML 报告。

使用建议

  1. 先快筛后精调:先用综合模式得到一个基础结果,再手动调整方差与相关系数阈值观察特征变化。
  2. 结合业务判断:统计筛选是参考,含领域含义的特征需人工复核,避免仅凭数值剔除关键变量。
  3. 设置目标列:在做分类或回归任务时,优先指定目标列,以启用互信息和重要性筛选,结果更贴近建模目标。
  4. 固定随机种子:保持随机种子一致,使重要性结果可复现、可对比。
  5. 验证筛选效果:将筛选前后的特征集分别用于建模对比,确认筛选是否带来预期效果。
  6. AI 分析辅助:配置 API 密钥后,可让 AI 对被剔除特征与保留特征进行评估,辅助决策。

平台界面

官方地址:https://superr.online

特征筛选工具界面

平台界面包含:数据上传区、筛选方法与参数设置区(方差/相关系数阈值、Top N、随机种子)、原始/筛选后数据双预览、特征评分明细表、筛选摘要及 AI 分析模块

参考文献

  1. Guyon, I., & Elisseeff, A. (2003). An Introduction to Variable and Feature Selection. Journal of Machine Learning Research, 3, 1157-1182.
  2. Cover, T. M., & Thomas, J. A. (2006). Elements of Information Theory. John Wiley & Sons.
  3. Breiman, L. (2001). Random Forests. Machine Learning, 45(1), 5-32.