Z-score(标准分数)
Z-score(标准分数)是数据分析中常用的一个标准化指标,用于衡量某个数据点与其所在数据集的平均值之间的偏离程度。具体而言,它表示一个数据点距离数据集均值的标准差数值。Z-score 计算的基本原理是将数据点转化为标准化值,从而便于比较不同数据集中的数据点。
Z-score的计算公式
其中:
:单个数据点的值。
:数据集的均值(平均值)。
:数据集的标准差。
解释
:表示数据点 与数据集均值 的偏差,或称为该数据点与均值的差异。 :标准差,衡量数据集的离散程度。标准差越大,说明数据点之间的差异越大;标准差越小,说明数据点之间的差异越小。
Z-score 的意义
Z-score 的意义主要有以下几点:
- Z-score = 0:表示数据点与均值完全一致。
- Z-score > 0:表示数据点大于均值,即位于均值右侧。
- Z-score < 0:表示数据点小于均值,即位于均值左侧。
- Z-score 的绝对值较大:表示数据点距离均值较远,离群点的可能性较大;例如,Z-score 大于 3 或小于 -3 的数据点通常被认为是异常值。
Z-score 的主要应用
标准化数据:通过 Z-score 可以将数据标准化,使得不同量纲、不同范围的数据具有可比性。例如,在机器学习中,许多算法(如 KNN、SVM)对数据的尺度敏感,因此需要对数据进行标准化处理。
异常值检测:Z-score 可以用来识别数据中的异常值。通常,当 Z-score 的绝对值大于 3 时,认为该数据点为异常值(离群点)。
比较不同数据集:如果两个数据集具有不同的均值和标准差,可以使用 Z-score 对它们进行比较,便于判断哪个数据点在其各自数据集中的位置更加偏离均值。
举个例子
假设我们有一个包含学生成绩的数据集 [80, 85, 90, 92, 85, 88, 75, 78, 92, 95, 100, 85, 92, 88, 85, 200]。我们希望计算数据点 200 的 Z-score,并判断它是否为异常值。
数学计算公式
计算均值
: 计算标准差
:
标准差的计算公式为:代入数据集计算:
计算 Z-score:
Python 代码
在Python中,我们可以使用 numpy
和 scipy
库来计算 Z-score。
1 | import numpy as np |
计算数据集的均值和标准差和Z-score:
1 | # 计算均值 |
输出:
1 | 均值 (Mean): 94.375 |
所以,数据点 200 的 Z-score 为 3.7777839504162842,按照 Z-score 的定义,它位于数据集的右侧,距离均值较远 ( Z-score 大于3或者小于-3 )
,因此被认为是异常值。
总结
Z-score
是衡量数据点相对于数据集平均水平偏差程度的标准化指标,广泛应用于数据预处理
、异常值检测
以及统计分析
等领域。通过 Z-score,我们可以将不同规模、不同单位的数据转换为相同的标准尺度,方便进行比较和进一步分析。