异常值检测的 Z 分数 - Python
Z 分数是统计学中的一个重要概念。 Z 分数也称为标准分数。此分数有助于了解数据值是大于还是小于平均值以及与平均值的距离。更具体地说,Z 分数表明数据点与平均值相差多少标准差。
Z score = (x -mean) / std. deviation
正态分布如下所示,估计为
68% 的数据点位于 +/- 1 标准偏差之间。
95% 的数据点位于 +/- 2 标准偏差之间
99.7% 的数据点位于 +/- 3 标准偏差之间
Z 分数和异常值:
如果某个数据点的 z 值大于 3,则表明该数据点与其他数据点存在较大差异。这样的数据点可能是异常值。
例如,在一项调查中,询问一个人有多少个孩子。
假设从人们那里获得的数据是
1, 2, 2, 2, 3, 1, 1, 15, 2, 2, 2, 3, 1, 1, 2
显然,15 在这个数据集中是一个异常值。
让我们使用Python计算 Z 分数来找到这个异常值。
第 1 步:导入必要的库
import numpy as np
第 2 步:计算平均值、标准差
data = [1, 2, 2, 2, 3, 1, 1, 15, 2, 2, 2, 3, 1, 1, 2]
mean = np.mean(data)
std = np.std(data)
print('mean of the dataset is', mean)
print('std. deviation is', std)
输出:
mean of the dataset is 2.6666666666666665
std. deviation is 3.3598941782277745
第 3 步:计算 Z 分数。如果 Z 分数>3,则将其打印为异常值。
threshold = 3
outlier = []
for i in data:
z = (i-mean)/std
if z > threshold:
outlier.append(i)
print('outlier in dataset is', outlier)
输出:
outlier in dataset is [15]
结论:Z 分数有助于我们识别数据中的异常值。
在评论中写代码?请使用 ide.geeksforgeeks.org,生成链接并在此处分享链接。