Skip to content
Charles Shao
Go back

数据预处理:洗菜择菜的三步——观察、清洗、整理

views

大厨下锅前,备料师得先把菜洗干净、把坏叶子择掉、把大小切齐。数据预处理就是这道工序:把原始、混沌的数据,变成干净、规整、模型能高效处理的数据集。它分三步——观察(验货)、清洗(择坏补缺)、整理(统一秤)

这一篇聚焦「洗」这一段。特征的构建、编码、降维分别在特征构建特征编码特征提取与降维里展开。

Table of contents

Open Table of contents

一句话理解

预处理 = 验货 → 择菜 → 切齐

先系统地把整批货扫一遍找问题(观察),再把坏的挑掉、缺的补上(清洗),最后把不同大小的料切成同一个量纲(整理)。顺序不能乱:没验货就下手清洗,等于蒙着眼睛择菜。

数据预处理三步:数据观察(探索性分析、找问题)→ 数据清洗(处理异常值/缺失值/噪音)→ 数据整理(缩放/编码,转成模型友好格式),逐级把原始数据变成干净规整的训练数据


1. 数据观察:系统地把货扫一遍

观察不是随便看看,而是照着一张清单逐项排查,把潜在的质量问题、逻辑错误、冗余信息都揪出来:

观察内容目的处理建议
属性判定有没有不合常理的值如「男士买了女士专用发夹」
组合/统计判定组合属性逻辑真伪如「声称美国用户但 IP 在中国」
缺失值有没有缺失缺失极多的特征直接去除;否则填充
离群点有没有明显离群交给清洗阶段处理
垃圾值全空列 / 乱码 / 异常标点用异常检测算法(聚类、最近邻)排查
取值变化方差是否过小95% 取值为 1 的二值特征意义不大;100% 为 1 则毫无作用
量纲是否同一量纲不同量纲需去量纲化(标准化/归一化)
信息冗余特征是否重复/成比例去重
定量特征是否需要区间划分二值化 / 分箱(考分 → 及格/不及格)
定性特征无法定量的属性转定量,常用独热编码

观察阶段的产出,是一张「问题清单」——它直接决定后面清洗和整理动手做什么。


2. 数据清洗:择坏的、补缺的

2.1 异常值(离群点)检测:三把刀

A. 箱线图(Box Plot)——最直观的一把

箱线图基于四分位数,用四分位距 IQR 圈出「正常范围」,范围外的就是嫌疑离群点。以序列 12,15,17,19,20,23,25,28,30,33,34,35,36,37(n=14)为例:

箱线图算例:盒子从下四分位数 Q1=18.5 到上四分位数 Q3=34.25,中位数 Q2=26.5 在盒中;须延伸到 IQR 围栏内的最小/最大值;上限 Q3+1.5·IQR≈57.9、下限 Q1−1.5·IQR≈−5.1,围栏之外的点(如 62)被判为离群点

Qᵢ = i × (n+1)/4 求分位数:

概念
下四分位数 Q₁18.5
中位数 Q₂26.5
上四分位数 Q₃34.25
四分位距 IQR = Q₃ − Q₁15.75
上限 Q₃ + 1.5 × IQR57.875
下限 Q₁ − 1.5 × IQR−5.125

箱线图的价值:① 客观识别异常值(基于分位数,抗极端值);② 判断偏态和尾重(异常集中在一侧 → 左偏/右偏);③ 并排比较多批数据的形状。

B. 切比雪夫定理——一条不挑分布的兜底

P(|X − μ| ≥ kσ) ≤ 1 / k²

含义:不管什么分布,取值都集中在期望 μ 附近。若某值落在 μ ± kσ 之外,就可能异常(k 由你定)。好处是对分布几乎不做假设。

C. 孤立森林(iForest)——海量连续数据的快刀

核心思想一句话:异常 = 容易被孤立的点(分布稀疏、密度低)。

iForest 优点iForest 缺点
线性时间,适合海量数据不适合特别高维(很多维度没被随机选到)
各树独立,可分布式只对全局稀疏点敏感,不擅长局部稀疏

2.2 异常值怎么处理

检出之后三选一:删除(移除该记录)、忽略(树模型对异常不敏感可保留)、替换(用中位数/均值/缺省值补回,保住样本量)。

2.3 缺失值:四种补法

方法做法代价
删除法删样本或删变量(如 >40% 空值的特征)信息浪费、结构变动
填充法数值型用均值;非数值型用中位数/众数容易得到有偏统计
插补法回归插补 / 多重插补复杂但更合理
建模法用其他完整特征预测缺失值(决策树/LR)最贵,但保留结构

经验:缺失本身有时也是信息。与其粗暴补 0,不如加一个「是否缺失」的标记位——「这人没填收入」这件事,可能比收入的具体数值更有预测力。


3. 数据整理:把料切成同一个量纲

当不同特征取值范围差异巨大(年龄 0100 vs 收入 0100000),基于距离和梯度的模型(KNN、SVM、线性回归、神经网络)会被大数值特征主导。所以要缩放。

三种缩放对比:标准化把数据压成均值0/标准差1、对离群点不敏感;归一化(Min-Max)线性压到[0,1]、对离群点敏感;鲁棒缩放用中位数和IQR、对异常值高度鲁棒——三者适用场景不同

方法公式适用 / 特点
标准化 (Standardization)x' = (x − μ) / σ分布近正态时;对离群点不敏感
归一化 (Min-Max)x' = (x − min) / (max − min)图像 / 神经网络;对离群点敏感
鲁棒缩放 (Robust)x' = (x − Q₂) / (Q₃ − Q₁)有异常值时;高度鲁棒

选择口诀:数据干净近正态 → 标准化;要固定到 [0,1] → 归一化;一堆异常值甩不掉 → 鲁棒缩放。

整理阶段还包括分箱、编码、特征组合、降维,但这些更偏「造特征」而非「洗数据」,分别在系列后续几篇里细讲。


TL;DR — 三句话

  1. 预处理三步不能乱序:观察(照清单验货)→ 清洗(择坏补缺)→ 整理(统一量纲)。
  2. 异常值三把刀:箱线图(IQR,最直观)、切比雪夫(不挑分布的兜底)、孤立森林(海量连续数据的快刀);缺失值有删/填/插/建模四种补法,别忘了「缺失本身也是信息」。
  3. 缩放看数据:近正态用标准化、要 [0,1] 用归一化、异常多用鲁棒缩放。

下一篇开始「切配」——特征构建:特征组合(GBDT+LR、交叉特征)、映射到新空间(FFT / 小波 / 数据熵)、以及最吃业务经验的衍生变量。


views
Share this post on:

Previous Post
特征构建:切配、换角度、片下部位——把原始料做出新味道
Next Post
MySQL 内核 · 执行计划与慢查询优化