异常值检测及处理
Anomaly Detection
wangzf / 2022-09-13
异常值的定义
在一个特征的观测值中,明显不同于其他数据或不合乎常理的观测值。
异常值出现的原因
- 人为错误
- 数据输入、记录导致的错误
- 自然错误
- 测量误差,比如仪器出现故障
异常值检测方法
- 简单可视化分析
- 对特征值进行一个数据可视化,远远偏离大部分样本观测值的样本点认为是异常值。
- \(3 \sigma\) 原则
- 当数据服从正态分布,根据正态分布的定义可知, 一个观测值出现在距离平均值 \(3 \sigma\) 之外的概率是 \(P(|x-\mu| > 3\sigma) \leq 0.003\), 这属于极小概率事件,因此,当观测值距离平均值大于 \(3\sigma\),则认为该观测值是异常值。
- 箱型图分析(数字异常值,Numeric Outlier)
- 落在 \((Q1 - 1.5 \times IQR)\) 和 \((Q3 + 1.5 \times IQR)\) 之外的观测值认为是异常值。
- Z-score
- 假设特征服从正态分布,异常值是正态分布尾部的观测值点,因此远离特征的平均值。 距离的远近取决于特征归一化之后设定的阈值 \(Z_{thr}\),对于特征中的观测值 \(x_i\), 如果 \(Z_i = \frac{x_i - \mu}{\sigma} > Z_{thr}\),则认为 \(x_i\) 为异常值, \(Z_{thr}\) 一般设为:2.5,3.0,3.5。
异常值处理方法
- 直接删除含有缺失值的样本
- 优点: 简单粗暴
- 缺点: 造成样本量(信息)减少
- 将异常值当做缺失值,交给缺失值处理方法来处理
- 用特征的均值修正;
Sigmoid 参数曲线
Sigmoid 参数曲线:
$$f(x) = \frac{a}{b + e^{-(dx - c)}}$$
损失函数:
$$S(p) = \sum_{i=1}^{m}(y_{i} - f(x_{i}, p))$$