机器学习 - 偏度与峰度
在机器学习中,偏度(Skewness)和峰度(kurtosis)是衡量概率分布形状的两个重要指标。
偏度指的是分布不对称的程度。如果分布关于其均值不对称,则称为偏态分布。偏度可以是正值,表示分布的右尾较长;也可以是负值,表示分布的左尾较长。偏度为零表示分布完全对称。
峰度指的是分布的尖峰程度的度量。具有高峰度的分布比正态分布具有更尖锐的峰和更重的尾部,而低峰度的分布则具有更平坦的峰和更轻的尾部。峰度可以是正值,表示峰高于正态分布;也可以是负值,表示峰低于正态分布。峰度为零表示正态分布。
偏度和峰度对机器学习算法都有重要影响,因为它们会影响模型的假设和预测的准确性。例如,高偏度分布可能需要数据变换或使用非参数方法,而高峰度分布可能需要不同的统计模型或更稳健的估计方法。
示例
在 Python 中,SciPy 库提供了计算数据集偏度和峰度的函数。例如,以下代码使用 skew() 和 kurtosis() 函数计算数据集的偏度和峰度 −
import numpy as np
from scipy.stats import skew, kurtosis
# 生成一个随机数据集
data = np.random.normal(0, 1, 1000)
# 计算数据集的偏度和峰度
skewness = skew(data)
kurtosis = kurtosis(data)
# 打印结果
print('Skewness:', skewness)
print('Kurtosis:', kurtosis)
这段代码从均值为 0、标准差为 1 的正态分布中生成 1000 个样本的随机数据集。然后使用 SciPy 库中的 skew() 和 kurtosis() 函数计算数据集的偏度和峰度。最后,将结果打印到控制台。
输出
执行此代码后,您将得到以下输出 −
Skewness: -0.04119418903611285 Kurtosis: -0.1152250196054534
对于正态分布,结果的偏度和峰度值应该接近于零。