Math-09.特征预处理与变换-05.缺失值与异常值

本页讲解缺失值异常值处理——表格与组学数据预处理的高频环节。

段末注释MCAR(missing completely at random,完全随机缺失)指缺失与观测/未观测值均无关;MAR(missing at random)指缺失仅依赖已观测变量。

系列入口00.系列规划 | 前置:01 总论


1. 缺失机制(D1–D2)

图 1 三种缺失机制

类型 含义 简单插补风险
MCAR 随机缺失 较低
MAR 依赖已观测 条件插补更好
MNAR 依赖缺失本身 建模缺失机制

2. 插补策略(D3)

图 2 插补方法对比

方法 说明
删除 listwise / 阈值删列
均值/中位数 简单,降方差
KNN / MICE 多变量、更精细
模型预测 用其他特征回归插补
指示变量 额外 is_missing

插补统计量 只在 train fit10 Pipeline)。


3. 异常值(D3–D4)

IQR 规则:超出 $[Q_1 - 1.5,\mathrm{IQR},, Q_3 + 1.5,\mathrm{IQR}]$ 为候选异常。

Winsorize:将极端值截断到分位数(如 1%/99%),保留样本量。

方法 保留数据 对模型
删除 简单
Winsorize 稳健回归友好
RobustScaler 02
log 压缩 03

4. 跨领域应用(D7)

图 3 缺失/异常场景

领域 典型问题 做法
临床 EHR 检查项 MAR MICE、多重插补
传感器 IoT 丢包 MCAR 插值/前向填充
金融报表 缺失 MNAR(未披露) 指示变量 + 领域规则
组学 低于检出限 左删失模型或 $1/2$ LOD
问卷 跳题 MAR 条件均值
图像 遮挡 inpainting(深度,见 20
推荐 隐式反馈稀疏 非缺失即 0 的建模区分

5. 局限(D8)

图 4 局限

问题 说明
均值插补低估 SE 推断过于乐观
异常 = 信号 欺诈检测勿删
高缺失率列 删列优于瞎填
时间序列 勿用未来值插补过去

6. sklearn 示例(D12)

1
2
3
4
5
6
import numpy as np
from sklearn.impute import SimpleImputer

X = np.array([[1.0, np.nan], [2.0, 3.0], [np.nan, 4.0]])
imp = SimpleImputer(strategy="median")
print(imp.fit_transform(X))

7. 小结

理解 MCAR/MAR 再选插补;异常处理与业务定义挂钩。下一篇:06 缩放与 PCA

系列导航04 编码 | 10 Pipeline

-------------本文结束感谢您的阅读-------------