异常值#
术语解释#
在机器学习中,异常值(Outlier),也常被称为离群点或异常样本,是指那些在数据集中显著偏离其它(大多数样本)观测值的样本点,它可能来源于数据错误,也可能是真实但罕见的现象。异常值会干扰模型训练,因此通常需要识别并通过删除、截断(Clipping)或数据变换等方法进行处理。
例如在聚类算法(如 DBSCAN)中,异常点被定义为密度低且相对孤立的样本点。具体而言,如果一个样本点对于其它任何样本点来说均不满足“直接可达”的条件(即不在任何核心样本的半径范围内),则该点被判定为异常点。 相关内容可参见「11.10 基于密度的聚类算法:DBSCAN 原理与应用」。
在支持向量机(SVM)中,异常值通常表现为那些不满足严格间隔约束条件的点,其函数间隔可能小于1,甚至被错误地划分到了另一类样本的区域中。相关内容可参见「10.7 SVM优化问题:目标函数与约束条件解析」
影响#
异常值对某些算法(如硬间隔 SVM)极其敏感,如果训练集中加入一个异常点,决策边界可能会为了拟合该点而发生剧烈摆动,导致分类间隔变得极其狭窄,从而大幅降低模型的泛化能力。
在图10-9中,实线为相应的决策面,黑色方块和黑色圆点分别为两个类别的样本。在图10-9(a)中,通过SVM建模得到的决策面已经完美地将两种类别的样本点进行了区分,但是,如果此时训练样本中加入一个异常点,并且继续用SVM建模求解,则将会得到图10-9(b)中所示的分类决策面。可以发现,虽然此时决策面也成功地区分开了每个样本点,但是相较于图10-9(a)中的决策面却发生了剧烈的摆动,决策面到支持向量的距离也变得十分狭窄。 相关内容可参见「10.4 SVM软间隔原理:噪声样本与惩罚因子C」
异常值往往被视为训练集中的“噪声”,如果模型过于复杂,试图拟合每一个样本点(包括异常点),就会产生过拟合现象。相关内容可参见「4.3 过拟合处理方法:常见原因、表现与正则化实战」。
总结就是,异常值是数据集中的“少数派”。虽然它们可能由数据采集误差(噪声)产生,也可能代表了真实的特殊情况,但其存在往往会挑战模型的稳定性。选择具有鲁棒性的算法(如 DBSCAN)或引入惩罚机制是处理异常值的常用手段。