大家的AI
机器学习AI论文
加载中…

学习

🏅我的成就

Ch.01

缺失值处理:填补数据空白的策略

真实数据里常常出现像表格空单元格一样的缺失值。若置之不理,模型可能无法训练或得出有偏结果。本章从如何“补上窟窿”,到筛掉过于极端的异常值、纠正严重倾斜的类别不平衡,系统梳理支撑机器学习的数据质量流水线。

按章节的机器学习图示

选择章节后,下方图示会切换为该章节内容。可一览机器学习脉络。

缺失值处理:减少空白、提升可信度的预处理

什么是缺失值? 数据表中某一格没有取值的状态,像缺了一块的拼图。实务中可能来自问卷未答、传感器中断、传输丢失等。
缺失机制(MCAR/MAR/MNAR)追问“为什么空着”。MCAR(完全随机缺失 · Missing Completely At Random)像咖啡泼在问卷上——近似纯随机。MAR(随机缺失 · Missing At Random)像男性受访者不填“化妆品支出”——与其他已观测变量相关。MNAR(非随机缺失 · Missing Not At Random)像低收入者故意空着“收入”——缺失本身带有信息。
处理策略大致有三类:整行删除、用单一数值填充的单次插补、多次填充再合并的多重插补。各自在保留数据量、速度与统计严谨性上取舍不同,需按场景选择。
单次插补与多重插补:单次插补用均值、众数等一次性填完,快但有风险;多重插补构造多份合理的完整数据(多个“平行世界”),再综合结论,更谨慎。
异常检测的两个视角:只看一个变量的单变量检测(箱线图),与看变量组合是否异常的多变量检测(Mahalanobis/Isolation Forest/SVDD)解决不同问题;实务中往往两者都看。
类别不平衡校正:当样本向某一类严重倾斜时,模型容易像“没有少数类”一样学习。常用 Tomek Links(边界清理)、SMOTE/ADASYN(合成少数类)、SMOTE+Tomek(先合成再清理)等组合策略。
核心信息:缺失值处理不是孤立技巧,而是与异常检测、不平衡校正相连的一体化流水线设计问题。

单次插补常用代表值/方法

将常见单次插补方法用定义与简短公式进行归纳。

填补值/方法定义(简短公式)
均值(Mean)用样本均值填补: xmiss←xˉ=1n∑i=1nxix_{miss} \leftarrow \bar{x}=\frac{1}{n}\sum_{i=1}^{n}x_ixmiss​←xˉ=n1​∑i=1n​xi​
中位数(Median)用中位数填补: xmiss←median(x)x_{miss} \leftarrow \mathrm{median}(x)xmiss​←median(x)
众数(Mode)用出现频率最高的值填补: xmiss←arg⁡max⁡v count(x=v)x_{miss} \leftarrow \arg\max_v\,\mathrm{count}(x=v)xmiss​←argmaxv​count(x=v)
回归·KNN·Hot-deck回归: x^=f(z)\hat{x}=f(\mathbf{z})x^=f(z), KNN: xmiss←1k∑j∈Nkxjx_{miss}\leftarrow\frac{1}{k}\sum_{j\in N_k}x_jxmiss​←k1​∑j∈Nk​​xj​, Hot-deck: xmiss←xdonorx_{miss}\leftarrow x_{donor}xmiss​←xdonor​

直觉

机器讨厌空值。 空着不填,计算可能直接报错,就像答题卡没填无法阅卷。
乱填会严重误导。 若一律用 0 或均值填充,分布被破坏,模型会把插补值当真,产生过度自信的预测。
预处理是一套组合拳。 只补缺失不算完,还要同步规划异常值与不平衡处理,模型在真实环境中才站得稳。
关乎公平与安全: 若某群体缺失更多(MAR/MNAR),错误插补会拉大群体间性能差距,需在预处理阶段审视偏差信号。
比选模型更先影响效果: 同一算法下,预处理优劣对结果影响巨大,实务里常常是“好的数据流程”胜过“好的模型名字”。
部署后也更稳: 预先规定缺失、异常、不平衡的处理规则,新数据也能一致处理,便于再训练与监控。

数学说明

实战流程:探索性分析(EDA)→假设缺失原因→插补→捕捉极端值(异常值检测,如箱线图)→调整类别比例(不平衡处理,如 SMOTE)→再建模与评估。
单次插补写法:均值填充 xmiss←xˉx_{miss} \leftarrow \bar{x}xmiss​←xˉ;中位数填充 xmiss←median(x)x_{miss} \leftarrow \mathrm{median}(x)xmiss​←median(x)。
多重插补概念:构造 mmm 份完整数据集,将各份得到的估计 θk\theta_kθk​ 合并,例如 θˉ=1m∑k=1mθk\bar{\theta}=\frac{1}{m}\sum_{k=1}^{m}\theta_kθˉ=m1​∑k=1m​θk​。
基于 IQR 的箱线图规则:下栅栏 Q1−1.5×IQRQ_1-1.5\times IQRQ1​−1.5×IQR 与上栅栏 Q3+1.5×IQRQ_3+1.5\times IQRQ3​+1.5×IQR 之间为常见范围,外侧点可作为异常值候选。
协方差:刻画两变量一起波动的程度,例如身高与体重是否同向变化。公式 cov(X,Y)=E[(X−μX)(Y−μY)]\mathrm{cov}(X,Y)=\mathbb{E}[(X-\mu_X)(Y-\mu_Y)]cov(X,Y)=E[(X−μX​)(Y−μY​)]。多变量汇总为协方差矩阵 Σ\SigmaΣ,决定数据云团(椭圆)的方向与拉伸。
马氏距离:不是简单直线距离,而是用 Σ−1\Sigma^{-1}Σ−1 按分布形状加权:DM(x)=(x−μ)⊤Σ−1(x−μ)D_M(\mathbf{x})=\sqrt{(\mathbf{x}-\boldsymbol\mu)^\top\Sigma^{-1}(\mathbf{x}-\boldsymbol\mu)}DM​(x)=(x−μ)⊤Σ−1(x−μ)​(协方差是关键)。
孤立森林:更关注点在随机划分下是否很快被孤立(路径短),高维也常可用、对分布假设较弱。
SVDD(单类):仅用正常样本学习包住正常区域的边界(最小体积球或核边界),边界外判为异常,常用于单类异常检测。
类别不平衡:正类极少时,模型“全猜多数类”也可能准确率高,需结合 Recall、精确率、F1、PR-AUC,必要时重采样。
Tomek Links:不同类别互为最近邻的一对边界样本,常删除多数类一侧(或两者)以清理重叠,属欠采样式清洗。
SMOTE:在少数类样本 x\mathbf{x}x 与其近邻 xnn\mathbf{x}_{nn}xnn​ 之间插值:xnew=x+λ(xnn−x)\mathbf{x}_{new}=\mathbf{x}+\lambda(\mathbf{x}_{nn}-\mathbf{x})xnew​=x+λ(xnn​−x), λ∼U(0,1)\lambda\sim U(0,1)λ∼U(0,1)。比简单复制更灵活,但边界噪声大时也可能合成劣质点。
复合重采样(如 SMOTE+Tomek):先用 SMOTE 过采样少数类,再用 Tomek 清理边界模糊成对点,记作先增后清。