在翻译sklearn文档2.无监督学习部分过程中,发现协方差矩阵几乎贯穿整个章节,但sklearn指导手册把协方差部分放在了这一章节偏后的部分,作为机器学习一个基础概念,在这篇文章中,想把协方差矩阵的相关知识以及主要应用。
统计学中常用平均值,方差,标准差等描述数据。平均值描述了样本集合的中间点;方差总是一个非负数,当随机变量的可能值集中在数学期望的附近时,方差较小;反之,则方差较大。所以,由方差的大小可以推断随机变量分布的分散程度,方差能反映随机变量的一切可能值在数学期望周围的分散程度。
标准差描述了各个样本点到均值的距离的平均值。但这些统计量都是针对一维数据的计算,在处理高维数据时,便可以采用协方差来查看数据集中的一些规律。协方差来度量两个随机变量关系的统计量,它描述的意义是:如果结果为正值,则说明两者是正相关的,否则是负相关的。需要注意的是,协方差是计算不同特征之间的统计量,不是不同样本之间的统计量。
协方差基本知识:
协方差公式:
设n个随机向量:
从公式上看,协方差是两个变量与自身期望做差再相乘,然后对乘积取期望。也就是说,当其中一个变量的取值大于自身期望,另一个变量的取值也大于自身期望时,即两个变量的变化趋势相同,此时,两个变量之间的协方差取正值。反之,即其中一个变量大于自身期望时,另外一个变量小于自身期望,那么这两个变量之间的协方差取负值。下面根据举一个例子来对协方差形象的解释:
协方差矩阵是实对称矩阵,实对称矩阵的性质:
实对称矩阵的不同特征值对应的特征向量时正交的实对称矩阵的特征值是实数,特征向量是实向量实对称矩阵必可对角化,且其相似对角矩阵的对角线元素为n个特征值协方差矩阵中的对角线元素表示方差,非对角线元素表示随机向量X的不同分量之问的协方差.协方差一定程度上体现了相关性,因而可作为刻画不同分量之间相关性的一个评判量。
若不同分量的相关性越小,则非对角线元素的值就越小。特别地,若不同分量彼此不相关,那么C就变成了一个对角阵。注意,我们并不能得到协方差矩阵$C(X)$的真实值,只能根据所提供的X的样本数据对其进行近似估计。因此,这样计算得到的协方差矩阵是依赖于样本数据的,通常提供的样本数目越多,样本在总体中的覆盖面就越广。
注意,我们并不能得到协方差矩阵$C(X)$的真实值,只能根据所提供的X的样本数据对其进行近似估计。因此,这样计算得到的协方差矩阵是依赖于样本数据的,通常提供的样本数目越多,样本在总体中的覆盖面就越广。若不同分量的相关性越小,则非对角线元素的值就越小。
特别地,若不同分量彼此不相关,那么C就变成了一个对角阵。注意,我们并不能得到协方差矩阵$C(X)$的真实值,只能根据所提供的X的样本数据对其进行近似估计。因此,这样计算得到的协方差矩阵是依赖于样本数据的,通常提供的样本数目越多,样本在总体中的覆盖面就越广。
理解协方差矩阵的关键就在于牢记它计算的是不同维度之间的协方差,而不是不同样本之间,拿到一个样本矩阵,我们最先要明确的就是一行是一个样本还是一个维度,心中明确这个整个计算过程就会顺流而下,这么一来就不会迷茫了。其实还有一个更简单的容易记还不容易出错的方法:协方差矩阵一定是一个对称的方阵,
经验协方差
有时候由于种种原因,并不使用全部的样本数据计算协方差矩阵,而是利用部分样本数据计算,这时候就要考虑利用部分样本计算得到的协方差矩阵是否和真实的协方差矩阵相同或者近似。
当提供的样本数目相对于特征数足够多时,利用最大似然估计(或者称为经验协方差)计算的结果,可以认为是协方差矩阵的几个近似结果。这种情况下,会假设数据的分布符合一个多元正分布,数据的概率密度函数中是包含协方差矩阵的,利用最大似然函数,对其进行估计。
收缩协方差
在矩阵的求逆过程中,最大似然估计不是协方差矩阵的特征值的一个很好的估计,所以从反演得到的精度矩阵是不准确的。有时,甚至出现因矩阵元素特性,经验协方差矩阵不能求逆。为了避免这样的反演问题,引入了经验协方差矩阵的一种变换方式,收缩协方差。
协方差矩阵——PCA实现的关键
PCA的本质其实就是对角化协方差矩阵。PCA的目的就是“降噪”和“去冗余”。“降噪”的目的就是使保留下来的维度间的相关性尽可能小,而“去冗余”的目的就是使保留下来的维度含有的“能量”即方差尽可能大。
那首先的首先,我们得需要知道各维度间的相关性以及维度上的方差啊!那有什么数据结构能同时表现不同维度间的相关性以及各个维度上的方差呢?自然是非协方差矩阵莫属。
协方差矩阵度量的是维度与维度之间的关系,而非样本与样本之间。协方差矩阵的主对角线上的元素是各个维度上的方差(即能量),其他元素是两两维度间的协方差(即相关性)。我们需要的东西,协方差矩阵都有了。