特征筛选
方法概述
特征筛选是特征工程中重要的前置环节,目的是从原始数据中挑选对建模任务有价值的特征,剔除方差过小、相互冗余或与目标无关的变量,从而精简特征集、降低维度、提升建模效率。本工具提供方差筛选、相关系数筛选、互信息筛选、模型重要性筛选以及综合排序选取 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 | 是 |
| … | … | … | … | … | … | … |
处理过程:
- 数据加载:上传 CSV,工具自动将缺失符号转为
NA并智能转换列类型。 - 方法选择:采用综合模式,目标列选择”是否成交”,方差阈值 0.01,相关系数阈值 0.9,Top N=5。
- 执行筛选(示例结果):
- 方差筛选:剔除方差低于 0.01 的”登录设备数”等近似常数特征。
- 相关筛选:检测到”平台活跃天数”与”近一年消费次数” \(|r|>0.9\),保留方差较大者。
- 互信息/重要性:计算剩余特征与”是否成交”的关联及重要性并综合排名。
- 结果摘要(示例):筛选前 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 报告。
使用建议
- 先快筛后精调:先用综合模式得到一个基础结果,再手动调整方差与相关系数阈值观察特征变化。
- 结合业务判断:统计筛选是参考,含领域含义的特征需人工复核,避免仅凭数值剔除关键变量。
- 设置目标列:在做分类或回归任务时,优先指定目标列,以启用互信息和重要性筛选,结果更贴近建模目标。
- 固定随机种子:保持随机种子一致,使重要性结果可复现、可对比。
- 验证筛选效果:将筛选前后的特征集分别用于建模对比,确认筛选是否带来预期效果。
- AI 分析辅助:配置 API 密钥后,可让 AI 对被剔除特征与保留特征进行评估,辅助决策。
平台界面

平台界面包含:数据上传区、筛选方法与参数设置区(方差/相关系数阈值、Top N、随机种子)、原始/筛选后数据双预览、特征评分明细表、筛选摘要及 AI 分析模块
参考文献
- Guyon, I., & Elisseeff, A. (2003). An Introduction to Variable and Feature Selection. Journal of Machine Learning Research, 3, 1157-1182.
- Cover, T. M., & Thomas, J. A. (2006). Elements of Information Theory. John Wiley & Sons.
- Breiman, L. (2001). Random Forests. Machine Learning, 45(1), 5-32.