常用特征量
集中量
算术平均数
算术平均数(arithmetic mean):所有观察值的总和除以总次数所得之商。
性质1:各观察值与算术平均数之差(离差)的总和等于零,即:
证明
算术平均数据定义:
则:
证毕。
性质2:离均差的平方和最小,即:
证明
设 为任意值,则:
由性质 1 可知: ,则:
又因为 ,当 时取等号,所以:
当 时取等号。
证毕
中位数
中位数(median):数据按照大小顺序排列后位于最中间的数值。
补充:以下资料来自于《机器学习数学基础》(电子工业出版社)
众数
众数(mode):数据中出现次数最多的数值。
扩展
用程序寻找众数的代码示例
>>> datas
[103, 114, 129, 105, 103, 97, 102, 108, 102, 87, 107, 85, 110, 94, 108, 92, 113, 108, 122, 107, 119, 98, 95, 118, 88, 94, 105, 102, 97, 108]
>>> len(datas)
30
>>> times = {}
>>> for i in datas:
... if i in times:
... times[i] += 1
... else:
... times[i] = 1
...
>>> times
{103: 2, 114: 1, 129: 1, 105: 2, 97: 2, 102: 3, 108: 4, 87: 1, 107: 2, 85: 1, 110: 1, 94: 2, 92: 1, 113: 1, 122: 1, 119: 1, 98: 1, 95: 1, 118: 1, 88: 1}
# 对上述统计结果进行排序
>>> dict(sorted(times.items(), key=lambda item:item[1]))
{114: 1, 129: 1, 87: 1, 85: 1, 110: 1, 92: 1, 113: 1, 122: 1, 119: 1, 98: 1, 95: 1, 118: 1, 88: 1, 103: 2, 105: 2, 97: 2, 107: 2, 94: 2, 102: 3, 108: 4}
# 除了上述方法之外,还可以用下面的方式,适用于大数据
>>> import numpy as np
>>> from scipy import stats
>>> datas_array = np.array(datas)
>>> mode = stats.mode(datas_array)
>>> mode
ModeResult(mode=array([108]), count=array([4]))
>>> mode[0]
array([108]) # 众数:108
加权平均
加权平均数(weighted mean):具有不同权重的数据的平均数。
几何平均数
几何平均数(geometric mean):
将几何平均,用用于按照某个比例增长,并计算平均增长率,其公式为:
其中 是平均增长率, 是每个阶段(比如每个时间周期)的增长率。
证明
设初始值是 ,各个阶段的增长率依次是: ,则:
- 阶段 1 后达到的值是:
- 阶段 2 后达到的值是:
- 阶段 n 后达到的值是:
假设每个阶段平均的增长率是 ,则阶段 n 后达到的值是:
所以:
证毕。
差异量
差异量(measures of dispersion):描述一组数据离中趋势或离散程度的指标。
全距
全距 (range):观察值中最大值与最小值之差。
平均差
平均差(average deviation):所有观察值与算术平均数之差的绝对值的算术平均数。
方差和标准差
方差(variance):离差平方的算术平均数。
标准差(standard deviation):方差的平方根。
变异系数/差异系数
变异系数、差异系数(coefficient of variation):标准差与其算术平均数的百分比率。
地位量
地位量(measures of position):描述特定的观察值在整个次数分布中所占等级位置的指标。
百分位数
百分位数(percentile):在以一定顺序排列的一组观察值中,某个百分位置所对应的数值。
四分位数(quartile):将一组已排序的数据按个数四等分的百分位数,分别是位于25%、50%和75%的百分位数。
补充:箱线图
在参考资料 [1] 中,对箱线图做了简单介绍,但其中所述并不严谨,下面的资料协助学习者纠偏。
箱线图组成部分说明:
- 中位数(Q2 / 50th百分位数):数据集的中间值;
- 第一四分位数(Q1 / 25百分位数):最小数(不是“最小值”)和数据集的中位数之间的中间数;
- 第三四分位数(Q3 / 75th Percentile):数据集的中位数和最大数之间的中间值(不是“最大值”);
- 四分位间距(IQR):第25至第75个百分点的距离;
- 晶须(蓝色显示)
- 离群值(显示为绿色圆圈)
- “最大”:Q3 + 1.5 * IQR
- “最低”:Q1 -1.5 * IQR
利用 matplotlib 和 seaborn 等 Python 语言的库可以很方便地绘制箱线图,并且用箱线图也能识别数据集中的离群值。关于这方面的内容请参考 [2] 。
偏态量和峰态量
偏态量
偏态量、偏度(measures of skew):描述次数分布偏态方向和程度的指标。
偏度系数(skew coefficient):利用算术平均数、中位数和众数的关系来计算的偏态量,一般以算术平均数与众数(或中位数)之差除以标准差作为偏度系数。
中心动差(central moments):离差的k次方的算术平均数。分一级动差(为零)、二级动差(方差)、三级动差(作为偏态量)和四级动差(作为峰态量)。
- 偏度: ,如果是样本偏度,则
峰态量(measures of kurtosis):描述次数分布的陡峭程度(高低宽窄特征)的指标。
- 四级动差衡量: ,所使用样本标准差,则
参考资料
[1]. 邵志芳,心理统计学,轻工业出版社
[2]. 齐伟,跟老齐学 Python:数据分析,北京:电子工业出版社
作者: 老齐
链接: http://math.itdiffer.com/chapter02.html
来源: 机器学习
本文原创发布于「机器学习」,转载请注明出处,谢谢合作!