以下文章摘录自
《机器学习观止——核心原理与实践》
京东: https://item.jd.com/13166960.html
当当:http://product.dangdang.com/29218274.html
1.1 统计学
1.1.1 数据的标准化和归一化
在数据统计领域,我们通常需要对原始数据做标准化和归一化处理。
数据的标准化(Standardization)通俗地讲,就是把原始数据按照一定的比例进行缩放,使它们落入一个更小的特定区间范围的过程。标准化有多种实现方法,其中常用的是z-score,其表达式如下所示:
其中μ代表的是数据样本的均值,σ则是样本的标准差。采用z-score处理后的数据均值为0且标准差为1。
而数据的归一化(Normalization)简单而言是把原始数据按照一定的处理规则,使它们落入(0, 1)之间的小数。归一化的表达式如下所示:
因而从缩小数据的角度来看,我们可以认为归一化和标准化的目标是非常相似的。
归一化的核心作用之一在于消除不同量纲对于最终结果的影响,或者说让不同量纲的变量具备可比性。举个例子来说,假设有两个变量x1和x2,其中x1的范围是(20000, 200000),而x2的范围则是(0, 1)。这种情况下如果我们把这两个变量绘制出来,会发现基本上就是一条直线。换句话说,x2的变化范围在x1的“世界”里显得“微不足道”,因而在参与机器学习的过程中很可能会被毫不留情地“忽略”掉了。归一化就可以解决这类问题,它使得各种变量可以站在同一条起跑线上,从而保证结果的正确性。
与归一化类似,标准化也同样具备去除量纲的作用。不过标准化的另一个特点在于不会改变原始数据的分布,这是它和归一化的一个显著区别。比如前述所举两个变量的例子,经过归一化后它们的图形就不是类似一条直线了,而标准化则不会导致这种转变。使用者应该根据自己的实际诉求来选择更适合自己的实现方式。
1.1.2 标准差(standard deviation)
标准差又称为均方差,是反映数据离散程度的一种常用量化形式。它的计算公式并不复杂,参考如下:
其中SD是standard deviation的缩写。简单来讲,标准差就是各个数据减去它们平均值的平方和,除以数据个数后再开根号得到的。
举个例子来说,我们有以下两组数据:
数据A: {0, 5, 7, 9, 14}
数据B: {5, 6, 7, 8, 9}
虽然它们的平均值都是7,但是后者从数据分布上来看“更为集中”,因而根据SD的计算公式可知它的标准差更小。
1.1.3 方差(variance)和偏差(bias)
偏差和方差是机器学习过程中两个常用指标,我们在本小节对它们做一个统一的讲解。
l 偏差(bias)
简单而言,偏差就是预测值与真实值之间的差距
l 方差(variance)
和偏差不同,方差是指预测值的分散程度
如果我们把这两个指标形象地描绘出来,就如下面所示:
图 ‑ Bias和Variance示意图
假设靶心是真实值,实心圆点是预测值,那么上面的4张子图就代表了高/低情况下的bias和variance指标的实际表现。例如左上角各个实心圆点都围绕在靶心周围,因而偏差较小;但同时各个实心圆点又相对分散,因而方差较大。
1.1.4 协方差 (Covariance) 和协方差矩阵
前面小节所述的方差可以说是协方差的一种特例——后者可以用于衡量两个变量之间的误差,而方差则只有一个变量。通俗地讲,协方差就是两个变量在变化过程中它们的同步情况——即是属于同向变化还是反向变化?
l 假如变量A变大,同时变量B变小,就说明它们是反向变化(负相关)的,此时协方差的值为负数
l 与上述情况相反,如果变量A变大的同时变量B也变大,说明它们是同向变化(正相关)的,此时协方差的值为正数
协方差的标准公式如下所示:
也就是对于X和Y这两个变量,首先求得每一时刻的X值与其均值之差,以及Y值与其均值之差的乘积和(共n个时刻),然后再取平均值。
下面这个范例展示的是两个变量为正相关的情况。可以看到在同一时期,它们之间的变化方向是完全一致的:
图 ‑ 协方差为正相关时的情况
了解了协方差后,它的矩阵形式也就不难理解了。因为协方差只是针对两个变量的,那么当我们面对大于二维的问题时该怎么办呢?此时自然而然地就想到矩阵或许可以给出有效的答案,即:
譬如针对三维数据集的例子,它的协方差矩阵表达式为:
协方差是后续机器学习数据降维理论(如PCA)相关章节的基础,因而建议大家可以结合起来阅读。