【机器学习300问】42、异常检测任务中为什么假设数据符合高斯分布?

一、为什么要让数据符合高斯分布?

        现实世界中的数据并不总是完美地遵循高斯分布,特别是在存在尾部重、偏斜或其他复杂分布形状的情况。那么为什么我们还要假设数据服从高斯分布呢?我想从以下几个方面为大家解答一下困惑:

(1)高斯分布具有坚实的理论基础

        高斯分布(正态分布)具有坚实的数学理论基础和统计学意义,它是自然界和工程领域中许多随机现象的理想化模型。在中心极限定理的支持下,即使数据生成过程并非严格地遵循高斯分布,只要独立同分布的随机变量数量足够多,它们的线性组合趋向于服从高斯分布。这对于包含多个特征的数据尤其重要,因为即使单个特征不是高斯分布,它们联合分布的部分维度投影也可能接近高斯分布。因此,高斯分布可以作为第一近似

(2)高斯分布模型十分简便和实用

        高斯分布可以通过均值和方差这两个参数完全描述,并且其概率密度函数(PDF)形式简单,易于计算和理论分析。在异常检测中,提供了一个明确定义的度量标准来判定数据点是正常的还是异常的。可以根据数据点与均值的距离(标准化后)及分布的标准差来判断该点出现的可能性,离群点通常是那些落在概率密度较低区域的点。

(3)高斯分布模型高效和可扩展

        基于高斯分布的异常检测算法如单变量或多变量高斯分布模型,可以直接使用贝叶斯定理或者似然比检验来快速评估新观测点是否为异常。例如,多元高斯分布模型可以用于估计数据点出现在特定区域的概率,低于某个阈值即可视为异常。

        即使原始数据不符合高斯分布,也可以通过数据预处理使数据近似满足高斯分布的假设,从而应用传统的基于高斯模型的异常检测方法。

二、数据分布的形态特征如何描述?

        数据分布的形态特征揭示了数据点在数值空间内的集聚和扩散规律,不同的数据分布形态决定了后续转换成高斯分布应该使用何种方法。因此,先补充两个数据分布形态特征的统计量“偏度”和“峰度”。

(1)偏度

        偏度描述数据分布的不对称性。偏度的值可以是正数、负数或零。

  • 正偏态(右偏态),偏度值大于零:数据右侧的尾部较长,即数据分布的右侧有更多的极端值。
  • 负偏态(左偏态),偏度值小于零:数据左侧的尾部较长,即数据分布的左侧有更多的极端值。
  • 偏度值接近零:分布比较对称,类似于正态分布的形态。

(2)峰度

        峰度描述数据分布顶部尖峭或平坦的程度,反映了数据分布形态的顶端集中程度及尾部厚度。

  • 正峰态,峰度值大于零:数据的顶部更尖锐,尾部更厚,即相比正态分布,极端值出现的可能性更大。
  • 负峰态,峰度值小于零:数据的顶部更平坦,尾部更薄,即相比正态分布,极端值出现的可能性较小。
  • 峰度值接近零:形状类似于正态分布,即中间集中,两端递减的铃形。

三、让数据服从成高斯分布的几种方式

        尽管假设数据服从高斯分布在许多情况下是合理的,但在实际应用中,数据可能不总是高斯分布的,这时就需要其他方法来模拟数据的分布。

(1)对数变换

        如果数据呈现右偏态,尤其是存在长尾现象时,可以尝试取自然对数、常用对数或其他底数的对数,将数据的分布从偏斜变为对称。公式如下:

y=log(x+c)

【注】对数变换只能用于正值。如果数据中包含零或负值,你可能需要将所有值加上一个常数c来使它们正值化。 

(2)幂变换

        如果数据具有右偏且分布底部较宽的情况,可以尝试幂变换。如果平方根效果不好,还可以使用任意幂(0<c<1)来尝试转换后的分布是否符合高斯分布。公式如下:

y = x^{c}

(3)Box-Cox变换

        这是一种更为一般化的幂变换方法,它会自动寻找最适合数据的指数λ,使得转换后的数据更接近正态分布。公式如下:

y(\lambda) = \begin{cases} \frac{y^\lambda - 1}{\lambda} & \text{if } \lambda \neq 0 \\ \log(y) & \text{if } \lambda = 0 \end{cases}    

        其中y(它是任意正数)是原始数据点的值,\lambda(它不等于0)是变换参数,可以是任意实数值。通常这个\lambda值是通过最大似然估计或者通过最小化分布偏态的方式来确定。当\lambda = 0.5时,Box-Cox变换等效于平方根变换,而当\lambda = 0时,变换等效于对数变换。

  • 右偏态数据,选择合适的正数λ值(小于1),变换能够压缩大的数值,并拉伸小的数值。
  • 左偏态数据,选择合适的正数λ值(大于1)有可能对数据进行相应的变换。然而实践中,左偏数据通常不会通过Box-Cox变换来处理,可能会考虑其他变换方法。
  • 13
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值