无监督学习的异常值检测:马氏距离(理论)


我将解释基于

马氏距离的异常值检测。
单击此处以实现

这是一种通过无监督学习来学习数据模式并检测与该数据显着偏离的异常值数据的方法。
马氏距离是统计中用于表示距离的方法之一。
有欧几里得距离作为表示相似距离的方法。

评论

首先,我想解释欧几里得距离并进行回顾。
欧几里得距离是一种表达所谓"一般"距离的方法。
您知道勾股定理需要它。
如果您在简单的二维平面中思考,

1
2
3
{ \displaystyle
p = (p_1,p_2)
}

1
2
3
{ \displaystyle
q = (q_1,q_2)
}

时,它们的距离为

1
2
3
{ \displaystyle
d(p,q) = \sqrt{(p_1 - q_1)^2 + (p_2 - q_2)^2}
}

您可以使用

找到它。
这是一种通用的距离计算方法。

马氏距离

如前所述,马氏距离是统计中用来表示距离的一种方法。
说到何时使用,通常在多维数据具有相关性时使用。

假设数据是n维连续向量,则获得的数据字符串为

1
 x^m = x_1,x_2,…x_m

(将它们全部视为一组向量),

第i个数据是

1
2
3
4
5
6
7
8
9
10
{
  x_i = \left(
    \begin{array}{c}
      x_i,_1 \\
      x_i,_2 \\
      \vdots \\
      x_i,_n
    \end{array}
  \right)
}

编写

时,其均值向量

1
μ

,协方差矩阵

1
\sum_{}

计算如下。

平均向量

1
2
3
{
  μ = \frac{1}{m} \sum_{i=1}^m x_i
}

协方差矩阵

1
\sum_{} = \frac{1}{m}\sum_{i=1}^m (x_i - μ)(x_i - μ)^{\mathrm{T}}

因此,将θ作为阈值参数,将

用于新数据x。

1
  θ < \sqrt{(x_i - μ) ^{\mathrm{T}}\sum{}^{-1} (x_i - μ) }

如果满足

,则将x判断为异常值。
该方程式的右边称为马氏距离。

更多马氏距离

在这里

1
\sum_{}

是单位矩阵时,可获得欧几里德距离的平方。
当它是对角矩阵时,每个维度的比例都不同。
如果它是非对角矩阵,它将进一步旋转。

以下是基于二维向量上马氏距离的离群值检测图像。
20150704155700.png

这是因为绘制的点是数据点,并且显示椭圆以覆盖数据点。

此椭圆中不包括的点是异常值。
因此,阈值θ表示该椭圆的大小,并且异常值的比例根据允许的数量而变化。

欧几里得距离与马氏距离之间的差异

20150704160419.png

很容易看到此图。
欧几里得距离与马氏距离之间的差异在于定义距离时是否考虑了多维数据的相关性。
在马氏距离中,具有强相关性的距离方向是相对短于实际距离的想法。
在欧几里得距离的情况下,该距离在x轴和y轴上都相同。
但是,马哈拉诺比斯距离由x轴和y轴上的色散定义。
换句话说,如果方差大,则可以解释为距原点的距离不是,而
如果方差很小,则距原点的距离较大

马氏距离的更多细节

20150704160726.png

在此图中,从原点绘制了多个椭圆。
该椭圆的大小表示异常值的阈值的大小。
阈值越大,椭圆越大,离群值的比例也越小。

我提到椭圆的形状是由方差决定的,但是您可以将此图形解释为像山的轮廓线一样的图像。
等高线将山地部分包围在相同的高度。
马氏距离是相同的。
如果您在不考虑轴的概念的情况下将阈值解释为由同一椭圆形包围的范围,那么我认为您可以理解圆是如何变形的。

马氏距离问题

在基于Mahalanobis距离的离群值检测方法中,离群值的概念是通过均值向量和分数之类的基本概念来表述的。
但是,由于平均值本身受异常值的影响很大,因此还提出了一种使用中位数的思想来检测异常值的方法。 (此处省略)

另外,个人非常重要,此马氏距离计算方法不能仅使用具有布尔值的数据。
(该方法是从1或0的平均值中减去逻辑值1或0,因此请考虑将要发生的事情...)

概要

  • 马氏距离是距离的概括。
  • 马氏距离是考虑到每个维度中的相关性的距离。

下次,我将实际使用python实现它,因为它是一个实现版本。