异常检测 task03 — 线性模型
两种典型的线性模型
真实数据集中不同维度的数据通常都具有高度的相关性,这是因为不同的属性往往是由相同的基础过程以密切相关的方式产生的,在古典统计学中,这被称为回归建模,一种参数化的相关性分析。
相关性分析分为两种:一种是通过其他变量对某属性的值进行预测,其代表是线性回归;而另一种则是采用潜在变量来代表整个数据,其典型代表是主成分分析。
- 两个重要假设:
(1) 近似线性相关假设
(2) 子空间假设:子空间假设认为数据是镶嵌在低维子空间中的,线性方法的目的是寻找到合适的低维子空间使得其中的异常点有别于正常点。
线性回归
以一元线性回归为例:
Y
=
∑
i
=
1
d
a
i
X
i
+
a
d
+
1
Y=\sum_{i=1}^d{a_{i}X_{i}+a_{d+1}}
Y=∑i=1daiXi+ad+1
由于最小二乘算法一般要求观测矩阵
U
T
U
U^TU
UTU式可逆的,因此在其不可逆的时候往往是通过两种方式进行求解,一种是采用主成分分析来进行数据预处理,消除不同特征之间的相关性,然后再使用最小二乘法,第二种方法则是采用梯度下降算法。
- 基于异常检测的线性回归:
传统回归分析建模的目的是降低因变量的MSE,而异常检测中并不会给任何变量以特殊对待,异常值的定义是基于所有数据点的整体分布,因此需要一种更一般的回归建模:即以相似的方式对待所有变量,通过最小化数据对该平面的投影误差来确定最佳回归平面,在此情形下,假定我们有一组变量 X 1 、 . . . 、 X d X_{1}、...、X_{d} X1、...、Xd,则其对应的回归平面如下所示:
∑ i = 1 d + 1 a i X i = 0 \sum_{i=1}^{d+1}a_{i}X_{i}=0 ∑i=1d+1aiXi=0
为了保证解的唯一性,对参数进行如下约束:
∑ i = 1 d a i 2 = 1 \sum_{i=1}^da_{i}{^2}=1 ∑i=1dai2=1
以 L 2 L_{2} L2范数为目标函数:
L = ∣ ∣ U A ∣ ∣ 2 L=||UA||_{2} L=∣∣UA∣∣2
本质上是寻找超平面使得投影误差最小。
主成分分析
以上最小二乘算法试图找到一个与数据具有最佳匹配的(d-1)维超平面,主成分分析可用于解决该问题的广义版本,具体而言,采用主成分分析可以找到任意
k
k
k维平面,从而使得投影误差最小。
对于
d
d
d维数据,包含
N
N
N个样本的数据,采用
R
i
R_{i}
Ri表示其中第
i
i
i行,由此可以得到
d
∗
d
d*d
d∗d维的协方差卷矩阵,而协方差仅需要减去均值即可:
∑
=
(
R
−
R
ˉ
)
T
(
R
−
R
ˉ
)
\sum=(R-\bar{R})^T(R-\bar{R})
∑=(R−Rˉ)T(R−Rˉ)
易知协方差矩阵
∑
\sum
∑为对称半正定矩阵,因此可进行相似对角化运算:
∑
=
P
D
P
T
\sum=PDP^T
∑=PDPT
这里的
D
D
D为对角矩阵,对角元素为特征值,
P
P
P为标准正交矩阵,每一行为对应的特征向量;这些标准正交向量提供了数据应当投影的轴线防线。与异常检测相关的主成分分析主要性质如下:
- 如果前 k k k的特征向量选定之后(根据最大的 k k k个特征值),由这些特征向量定义的 k k k维超平面是在所有维度为 k k k的超平面中,所有数据点到它的均方距离尽可能小的平面
- 若将数据转换为与正交特征向量对应的轴系,则转换之后的数据沿每个特征向量的方差等于相应的特征值,在这种新表示中,转换后的数据协方差为0
- 由于沿着特征值较小的特征向量转换数据的方差较小,因此沿着这些方向的变换数据与平均值的显著偏差可能表示离群值
需要注意的是,与线性回归模型相比,主成分分析提供了一个更为普遍的解决方法,线性回归的方法可以视为主成分分析中仅保留最大特征值对应的特征向量的过程(线性回归相当于仅寻求一组基函数使得离差平方和最小)。得到这些特征值和特征向量之后,可以将数据转换到新的坐标系中,以 Y 1 、 . . . 、 Y N Y_{1}、...、Y_{N} Y1、...、YN来表示新坐标系中的数据,这些数据可以通过原始的向量 R i R_{i} Ri与包含新轴系的标准正交特征向量矩阵 P P P的乘积来实现: Y i = R i P Y_{i}=R_{i}P Yi=RiP。在许多涉及高维数据集的真实场景中,很大一部分特征值往往是趋于0的,这意味着大多数数据都沿着一个低维的子空间进行排列。
在不选取任何特定的 k k k维集合的情况下,一种更精确的异常检测建模放大是采用特征值来计算数据点沿着每个主分量方向到质心的归一化距离。设 e j e_{j} ej为第 j j j个特征向量, λ j \lambda_{j} λj为沿着该方向的方差(特征值),数据点 X ˉ \bar{X} Xˉ相对于数据质心 μ ˉ \bar{\mu} μˉ的总体归一化异常得分可以由下式给出:
S o c r e ( X ˉ ) = ∑ j = 1 d ∣ ( X ˉ − μ ˉ ) e j ˉ ∣ 2 λ j Socre(\bar{X})=\sum_{j=1}^d \frac{|(\bar{X}-\bar{\mu})\bar{e_{j}}|^2}{\lambda_{j}} Socre(Xˉ)=∑j=1dλj∣(Xˉ−μˉ)ejˉ∣2
值得注意的是,对异常得分的大部分贡献是由 λ j \lambda_{j} λj较小的主成分的偏差提供的,这一点上文中有提及过。主成分分析比因变量回归更稳定的处理少数异常值的讯在。这是因为主成分分析是根据最优超平面来计算误差的,而不是一个特定的变量。当数据中加入更多的离群点时,最优超平面的变化通常不会达到影响离群点的选择。因此这种方法更有可能选择正确的异常值,因为回归模型一开始就相对准确。
归一化问题
当不同维度的尺度差异很大的时候,采用PCA有时并不能得到直观有效的结果。部分数值较大数据可能会影响小数值数据的重要性。因此一个自然的想法是对数据进行标准化处理,这个问题并不是线性模型所独有的,对于大多数异常检测算法,均需要采用该方法对数据进行处理。
回归分析的局限性
回归分析作为检测离群值得工具具有一定得局限性。这些缺点中最重要的就是在本章的一开始就讨论了:为了使得回归分析技术有效,数据需要高度相关,并且沿着低维子空间对齐。当数据不相关,但在某些我区域高度聚集时,这种方法可能不会有效。
另一个相关的问题是,数据中的相关性在本质上可能不是全局性的,子空间相关性可能是特定于数据的特定位置的。在该种情形下,由主成分分析发现的全局子空间对于异常值是次优的,因此为了创建更一般的局部子空间模型,有时将线性模型与邻近模型结合起来是有用的。
总结
真实数据中,数据不同属性之间往往具有显著的相关性,在这种情况下,线性建模可以提供一种有效的工具来从底层数据中移除异常值或者进行异常检测。对于其他基于因变量回归的应用,线性建模是一种工具,取出异常值对于提高此类应用的性能是非常重要的。在大多数情况下,主成分分析提供了去除异常值和进行异常检测的最有效的方法,因为其对于少数异常值的数据更具有鲁棒性。