Robust Scaling 与异常值处理
用中位数和四分位距降低极端值对缩放参数的影响,并先区分错误数据与真实稀有事件。
学习前需要掌握
背景与问题
均值、标准差、最小值和最大值都可能被极端值显著改变。但异常值可能是录入错误,也可能是真实故障、欺诈或高价值对象,不能仅凭数值大就删除。
概念定义
RobustScaler 通常用训练集中位数做中心、四分位距 IQR 做尺度。异常值处理则是在业务确认后修正、截断、变换、保留或单独建模。
直观理解
中位数和中间 50% 数据像一把不容易被少数极端点拉歪的尺子。它提高稳健性,但不会自动消除异常值。
核心原理
IQR=Q3-Q1。RobustScaler 使用训练统计量;处理决策应基于来源、单位和任务语义。长尾非负特征还可考虑 log1p。
数学表达
稳健缩放
IQR 是训练集第 75 百分位与第 25 百分位之差。
变量含义
Q1训练集第 25 百分位。Q3训练集第 75 百分位。IQRQ3-Q1,中间 50% 数据的跨度。
计算步骤
- 1均值为 209.2,被 1000 显著拉高。
- 2中位数为 12。
- 3中间数据跨度远小于全范围 990。
代码对应位置
示例 1RobustScaler 与 StandardScaler 对比:观察极端值对两种缩放器的影响。
变量解释
| 变量 | 含义 |
|---|---|
Q1 | 训练集第 25 百分位。 |
Q3 | 训练集第 75 百分位。 |
IQR | Q3-Q1,中间 50% 数据的跨度。 |
完整数值示例
极端值如何影响尺度
已知条件
- 数据 [10,11,12,13,1000]
- 1
均值为 209.2,被 1000 显著拉高。
- 2
中位数为 12。
- 3
中间数据跨度远小于全范围 990。
Robust Scaling 的中心更接近普通样本,但是否删除 1000 仍需判断其来源。
处理前后对比
- StandardScaler 适合近似对称且异常较少的数据。
- Min-Max 对端点最敏感。
- RobustScaler 对极端点更稳健。
计算与实现步骤
- 1
定位异常值及来源记录。
- 2
检查单位、录入和传感器状态。
- 3
确认是否属于目标总体。
- 4
选择修正、截断、变换、稳健缩放或保留。
- 5
所有数据驱动阈值只在训练集拟合。
- 6
比较处理前后验证表现与业务影响。
代码实现
示例 1
RobustScaler 与 StandardScaler 对比
example_01.py用途:观察极端值对两种缩放器的影响。
import numpy as np
from sklearn.preprocessing import RobustScaler, StandardScaler
X = np.array([[10.], [11.], [12.], [13.], [1000.]])
print(StandardScaler().fit_transform(X).ravel().round(3))
print(RobustScaler().fit_transform(X).ravel().round(3))代码解析
解析始终位于完整代码下方,并按实际代码段逐项对应。
输入数据与任务
观察极端值对两种缩放器的影响。
X- 完整特征矩阵,每行一个样本、每列一个特征。
Step 1 · 1–2 行
导入当前步骤需要的数值计算、预处理、模型或评价工具。依赖集中写在代码开头,便于复现。
import numpy as np
from sklearn.preprocessing import RobustScaler, StandardScalerStep 2 · 4–6 行
调用 fit 学习训练数据中的参数;若在 Pipeline 中,预处理器与模型会按顺序拟合。
X = np.array([[10.], [11.], [12.], [13.], [1000.]])
print(StandardScaler().fit_transform(X).ravel().round(3))
print(RobustScaler().fit_transform(X).ravel().round(3))代码与数学原理
减去训练均值并除以训练标准差,对应代码中的 mean/std 或 StandardScaler。
预期输出或运行结果
两组不同缩放值;RobustScaler 下普通样本间的差异不会被 1000 压缩得同样严重。
常见错误 · 4 条
- 不要在测试集上调用 fit 或 fit_transform;测试集只能复用训练参数。
- 看到异常就删除
- 把 RobustScaler 当异常检测器
- 用全数据分位数设截断阈值
实际应用
- 长尾金额
- 含故障尖峰的传感器
- 稳健线性/距离模型
常见错误
文档来源
02|数据预处理与特征工程原始文档
学习资料/learning_tech/02_preprocessing_feature_engineering.md- §5 数值标准化与特征缩放
- §8 异常值
推荐学习资料
参考库不会生成虚假资源或无效外部链接。