3. 单变量分析:均值、方差、分布形态与业务逻辑校验
单变量分析是坏样本归因流程中的第一道筛网。在进入复杂的多变量交互与模型训练之前,必须对每个特征自身的统计属性与业务合理性进行独立审查。本章聚焦于四个核心维度:集中趋势(均值)、离散程度(方差)、分布形态(偏度/峰度)以及业务逻辑校验。通过这一环节,可以快速识别出数据采集错误、异常值污染、特征失效等基础问题。
3.1 均值与中位数:集中趋势的鲁棒性检查
均值对极端值高度敏感,而中位数具有鲁棒性。当两者差异显著时,往往意味着数据存在偏态或异常值。
| 指标 | 计算公式 | 对异常值敏感度 | 典型业务场景 |
|---|---|---|---|
| 均值 (Mean) | μ = (1/n) Σ xᵢ | 高 | 用户年龄、交易金额 |
| 中位数 (Median) | 排序后中间值 | 低 | 收入分布、响应时间 |
| 众数 (Mode) | 出现频率最高值 | 极低 | 类别特征、离散计数 |
实战校验规则: 若 |Mean - Median| > 2 * 标准差,则标记该特征为“强偏态候选”,需进一步检查是否存在录入错误或业务异常。
3.2 方差与标准差:离散度的业务阈值
方差衡量数据围绕均值的波动程度。在坏样本归因中,方差过小(接近零)或过大(超出业务常识)都是危险信号。
- 方差趋近于零: 特征几乎为常数,对模型无区分能力。常见于传感器故障、默认值填充错误。
- 方差异常大: 可能存在极端离群点或数据录入单位错误(如将“元”误录为“分”)。
- 变异系数 (CV = σ/μ): 无量纲指标,用于比较不同量纲特征的离散程度。CV > 1 通常提示数据稳定性差。
# 快速方差校验代码片段
import numpy as np
def check_variance_anomaly(feature, feature_name, cv_threshold=1.0):
mean = np.mean(feature)
std = np.std(feature)
cv = std / mean if mean != 0 else np.inf
if std < 1e-6:
print(f"[警告] {feature_name}: 方差接近零,特征可能失效")
elif cv > cv_threshold:
print(f"[警告] {feature_name}: 变异系数 {cv:.2f} > {cv_threshold},离散度过高")
else:
print(f"[通过] {feature_name}: CV = {cv:.2f}")
3.3 分布形态:偏度与峰度的诊断价值
分布形态直接反映数据生成过程是否稳定。偏度衡量对称性,峰度衡量尾部厚度。
| 指标 | 取值范围 | 业务含义 | 坏样本归因提示 |
|---|---|---|---|
| 偏度 (Skewness) | =0 对称;>0 右偏;<0 左偏 | 右偏:多数值集中在低区,少数极高值拉高均值 | 右偏严重时,坏样本可能集中在右尾 |
| 峰度 (Kurtosis) | =3 正态;>3 尖峰;<3 平峰 | 尖峰:数据集中在均值附近,但尾部有极端值 | 高峰度常伴随离群点,需排查异常事件 |
经验阈值: 偏度绝对值 > 2 或峰度 > 8,建议对该特征进行对数变换或分箱处理后再进入模型。
3.4 业务逻辑校验:统计之外的硬约束
统计指标无法覆盖所有问题。业务逻辑校验是单变量分析中不可替代的环节,通常包含以下检查项:
- 值域校验: 年龄是否在 [0, 120] 内?交易金额是否非负?
- 枚举值校验: 性别字段是否只包含 'M'/'F'/'Unknown'?是否存在拼写错误?
- 时序一致性: 注册日期是否早于首次交易日期?时间戳是否在未来?
- 缺失模式: 缺失率是否与业务预期一致?缺失是否集中在特定坏样本群体中?
常见陷阱: 不要仅依赖统计p值或方差阈值。例如,一个特征方差很大但完全符合业务逻辑(如“年收入”),不应被机械剔除。业务逻辑校验应优先于统计筛选。
3.5 单变量分析决策流程
以下SVG图展示了从原始特征到“通过/待审查/拒绝”三类标签的完整单变量分析决策流程。
3.6 单变量分析报告模板
完成上述分析后,建议按以下模板输出每个特征的诊断报告,便于团队协作与后续追踪。
| 特征名称 | 均值 | 方差 | 偏度 | 峰度 | 业务校验 | 决策 |
|---|---|---|---|---|---|---|
| age | 38.5 | 189.2 | 0.12 | 2.95 | 通过 | 通过 |
| income | 85200 | 4.2e9 | 3.45 | 18.7 | 通过 | 待审查 |
| transaction_count | 12.3 | 0.01 | -0.05 | 2.80 | 通过 | 通过 |
| negative_flag | 0.02 | 0.0196 | 6.85 | 45.9 | 失败(含负值) | 拒绝 |
核心原则: 单变量分析的目标不是“剔除所有异常特征”,而是“标记所有需要关注的特征”。保留业务合理的偏态特征,拒绝统计与业务双重异常的特征,这是坏样本归因的第一道防线。