异常值检测方法

1、含义

异常值是数据分布的常态,处于特定分布区域或范围之外的数据通常被定义为异常或噪声。

2、基于统计分析

1、3σ 原则

如果数据遵循正态分布,那么该数据与平均值的偏差超过 3 倍标准差的值为异常值
lower_bound(mean - deviation) 异常值检测方法_第1张图片

2、python实现

以下是一组示例数据:

import numpy as np

# 生成100个服从正态分布的随机数
data = np.random.normal(0, 1, 100)

# 修改最后一个数据为异常值
data[-1] = 10

# 进行异常值检测
mean = np.mean(data)
std = np.std(data)
deviation = 3 * std
lower_bound = mean - deviation 
upper_bound = mean + deviation
outliers = [x for x in data if x < lower_bound or x > upper_bound]

# 输出结果
print('数据集:', data)
print('异常值:', outliers)

这组数据由100个服从标准正态分布的随机数构成,我们手动将最后一个随机数替换为10以模拟一个异常值。利用正态分布的性质,我们来检测这组数据中的异常值。通过运行上述代码,我们可以得到如下输出:

数据集: [ 6.65741809e-01 -1.01409749e+00  1.46388106e+00  6.53203958e-02
  ...... 4.36125522e-01 -1.66166653e+00  1.00000000e+01]
异常值: [10.0]

可以看出,通过计算偏差边界,我们成功地检测出了数据中的异常值。

你可能感兴趣的:(机器学习,python,人工智能)