多元高斯分布异常检测代码_异常值检测

78db4688beb5a302f59bea03db0129dc.png
  1. IQR(InterQuartile Range)检测

常用于一维数据的异常值检测,首先计算数据的下四分位数Q1(25%分位数)、中位数Q2(50%)分位数、上四分位数Q3(75%分位数),再计算 IQR = Q3 - Q1,最好通过k来调整范围,得到异常值。

69d95a6406f6955903be776e54e74be7.png

当k=1.5时,称为内限,经典的箱线图正是以此为界计算异常值。当k=3时,称为外限。处于内限以外位置的点表示的数据都是异常值,其中在内限与外限之间的异常值为温和的异常值(mild outliers),在外限以外的为极端的异常值(extreme outliers)

import numpy as np
import random

data = np.array([random.random() for i in range(10000)])
k= 1.5
IQR = np.percentile(data, 75) - np.percentile(data, 25)
min_bound, max_bound = np.percentile(data, 25) - k * IQR, np.percentile(data, 75) - k * IQR
print("min_bound is {0:.4f}, max_bound is {1:.4f}".format(min_bound, max_bound))

------
min_bound is -0.4985, max_bound is 0.0026

2. Z-score

假定数据是高斯分布,异常值是分布尾部的数据点,因此远离数据的平均值。距离的远近取决于使用公式计算的归一化数据点

的设定阈值

7cb1af5a93244ce6d960de1971582988.png

其中

是一个数据点,μ是所有点
的平均值,δ是所有点
的标准偏差。

然后经过标准化处理后,异常值也进行标准化处理,其绝对值大于

275e5a67c56d7e47adcee655bce8b03b.png

一般取值为3
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值