在机器学习和数据挖掘的很多模型算法中,都涉及到两个和更多个变量的之间的相关性问题,本文对相关内容做一个总结归纳。
一、多维随机变量的相关性
多维随机变量的相关性通常使用协方差来描述。
1. 协方差的定义:设(X, Y)是一个二维随机变量,如果E[(X-E(X)) (Y-E(Y))]存在,则称其为X与Y的协方差,或称为X与Y的相关(中心)矩,并记为Cov(X, Y)。特别的Cov(X, X) = Var(X)
如果协方差 > 0,则称X与Y正相关;
如果协方差
如果协方差 = 0,则称X与Y不(线性)相关。
2. 如何理解协方差
在概率论中,两个随机变量X与Y之间的相互关系,大致有正相关、负相关和不相关三种。这三种情况下的X和Y的联合分布大致如下图所示:
大体上,在正相关的情况下,随着X的增大,Y也随着增大;在负相关的情况下,随着X的增大,Y随着减小;在不相关的情况下,随着X的增大和减小,Y与之没有线性关系。
为了用数学的方式表示相关性的关系,将以上三幅图以随机变量X和Y的期望值为界限分成了四个区域,
在图中的区域(1)中,有 X > E(x),Y-E(Y) > 0,所以(X-EX)(Y-EY)>0;
在图中的区域(2)中,有X 0,所以(X-EX)(Y-EY)
在图中的区域(3)中,有X 0;
在图中的区域(4)中,有X > E(X),Y-E(Y)
因此,我们可以成区域1和3是正相关区域,区域2和4为负相关区域。当X和Y大部分分布在正相关区域,小部分分布在负相关区域时,从整体来看E[(X-E(X)) (Y-E(Y))] > 0,反之亦然,这也就是协方差的定义式的含义。
3. 协方差矩阵
以上说明协方差时,使用的是两个随机变量,即二维情况下的相关性。协方差本身只能处理二维问题,在多维度的情况下,就需要计算多个随机变量两两之间的协方差,通常我们将这些两两之间的协方差以矩阵的形式排列出来,就是协方差矩阵。计算方法如下:
以三维变量为例,协方差矩阵为:
可见,协方差矩阵是一个对称矩阵,对角线是各个维度的变量的方差。
4. 无偏估计与样本的协方差的计算
计算协方差时,如果已知全部的数据,自然是对(X-E(X)) (Y-E(Y))部分对所有数据求和,然后除以数据的总数N。但是在实际中往往是不能获得随机变量的全部数据的,我们只能采集随机变量的部分样本,使用这些样本数据对随机变量的方差进行估计。通过样本数据估计协方差的公式为:
SUM((X-E(X)) (Y-E(Y))) / (N-1)
这里没有除以样本总数N而是除以N-1,是为了使估计值为无偏估计值。所谓的无偏估计是指:估计量的均值等于真实值。也就是说具体的一次估计可能大于真实值也可能小于真实值,但是估计值的整体均值要等于真实值。
无偏估计有如下评价标准:
(1)无偏性:如定义所述
(2)有效性:有效性是指估计量与总体参数的离散程度。如果两个估计量都是无偏的,那么离散程度较小的估计量相对而言是较为有效的。即虽然每次估计都会大于或小于真实值,但是偏离的程度都更小的估计更优。
(3)一致性:又称相合性,是指随着样本容量的增大,估计量愈来愈接近总体参数的真值。
在数学上,可以通过严格的推导证明出方差计算式为N-1可以使方差的估计值为无偏估计。在求单变量的方差估计值时,我们可以看一下使用N作为分母的结果情况。因为我们只有部分样本数据,所以不知道变量X的真是均值μ,因而需要用均值的估计值(X的平均),则:
可见,除非恰好X样本均值等于真是均值μ,否则我们的期望的估计值一定小于真实的期望值。将分母减一,也就在一定程度上增大了期望的估计值。
5. 使用Python计算协方差
在python中可以使用numpy的cov函数计算协方差。
示例代码如下:
In [1]: importnumpyasnp
In [4]:sample =data.T
In [5]:np.cov(sample)
Out[5]:
In [6]:col1 = data[:,]
In [7]:col2 = data[:,1]
In [8]:covXY =sum((col1-np.mean(col1))*(col2-np.mean(col2)))/(10-1)
In [9]:covXY
这里我们首先随机产生一个10行3列的样本数据,在使用cov函数计算协方差矩阵时,传入的参数矩阵需要在行的方向是各个变量,列的方向上是变量的多个样本值,因此需要对原始的数据进行转置。
之后我们通过使用协方差的计算公式手动计算了前两个变量的协方差,可见结果与使用cov函数的计算结果相同。
6. 协方差的性质
Cov(X, Y) = E(XY) - E(X)E(Y)
X,Y独立等价于则Cov(X, Y) = 0
Cov(X, Y) = Cov(Y, X)
Cov(X, a) = 0, a为常数
Cov(aX, bY) = abCov(X, Y)
Cov(X+Y, Z) = Cov(X, Z) + Cov(Y, Z)
Var(X+Y) = Var(X) + Var(Y) + 2Cov(X, Y)
Var(X-Y) = Var(X) + Var(Y) - sCov(X, Y)
二、矩阵与向量的相关性
矩阵与空间变换、向量的线性相关、矩阵的可逆、矩阵的秩、特征值与特征向量等概念是相互联系的,在此做一个归纳。
1. 行列式的数学概念
线性代数起源于解线性方程组,例如
利用消元法可得:
为了便于记忆,数学上引入记号
称之为二阶行列式,它表示a11a22-a12a21。我们把a11、a22的连线称为主对角线,a12、a21的连线称为次对角线,
则二阶行列式的值等于主对角线的乘机减去次对角线上元素的乘积.这个算法称为二阶行列式的对角线法则.按此法则,二元一次方程组的解可用二阶行列式表示成:
上面的表达式称为二元一次方程组的行列式解法。
2. n阶行列式
以上是二维矩阵的行列式的例子,当扩展到多维时,就不能简单用对角线法则进行计算了,为此需要引入排列和逆序数的概念。
排列:把n个不同的元素排成一列, 叫做这n个元素的全排列,简称排列。
自然排列(标准排列):n个不同的自然数的排列, 且这n个数按照从小到大的顺序。
逆序数:在n个不同的自然数组成的排列p1,p2,......pn中,如果某两个数不是自然顺序,也就是说前面的数大于紧随其后的数,则称这两个数构成一个逆序, 该排列中的逆序数总个数称为这个排列的逆序数, 记作η(p1p2...pn)。
逆序数有以下性质:
(1),其中ηi表示排列中前i个数中大于pi的数的个数。这也是逆序数的最直接的计算方法,即依次取排列中的一个数pi,数出pi前面比pi大的数的个数,最后做加和就是排列的逆序数。
(2)排列中将两个数的位置对调,称为对换。排列经过一次对换,其奇偶性改变。这个性质可以通过性质1理解证明。
在逆序数的基础上,n阶行列式的定义如下:
它表示,多为矩阵的行列式是一系列项的和,每一项都由n个矩阵的元素的乘积组成,每一项的元素的第一个下标都是从1到n,第二个下标是自然数1到n的某一种排列,每一项的正负号由该排列的逆序数决定。
3.行列式的性质
(1)行列式与其转置行列式相等,即D = DT。
(2)互换行列式的任意两行(列), 行列式变号(互换行列后,逆序数改变奇偶性)。
(3)若行列式中某一行(列)所有元素有公因子k,则可把公因子提到行列式记号之外。
推论1:有数k乘以行列式等于行列式的某一行(列)的所有元素同时乘以数k。
推论2:若行列式中某两行元素成比例,则行列式的值为0(将比例系数提出后有两行相同,互换两行行列式应该变号,即D=-D,则D=0)。
推论3:若行列式中某行元素全为零,则行列式的值为0.
推论4:若行列式D的第i行元素都是两数之和,则行列式可以拆成两个行列式之和:
推论5:将行列式D中某一行各元素的k倍加到另一行对应的元素上去,行列式的值不变(由推论4和推论2可证)。
4. 行列式按行列展开
通常情况下,低阶行列式比高阶行列式更容易计算,因此通常将高阶行列式转化为低阶行列式的计算问题。
在n阶行列式D=|aij|中,划去元素aij所在的第i行和第j列后,得到的n-1阶行列式称为元素aij的余子式,记作Mij,而把
称为元素aij的代数余子式。
性质:
(1)n阶行列式等于它的任一行(列)个元素与其对应的代数余子式乘积之和。
(2)阶行列式D的任一行(列)各元素与另一行(列)对应元素的代数余子式乘积之和为0。
5. 克拉默法则
一般线性方程组的矩阵表示为AX=b,如果b为0向量,则方程组称为齐次方程组,否则称为非齐次方程组。
如果齐次线性方程组的系数行列式D≠0,则该方程组只有零解。
三、矩阵与向量的相关性的几何意义
1. 超体积
首先看二维的情况,体积退化为面积。面积是一个标量,它来自于(构成其相邻边)两个矢量。因此,我们可以将面积看成一个由两个有序的失量对到一个标量的映射。面积的映射对于两个失量来说是线性的,并且和失量的顺序有关。为此,我们引入右手定则:
以X正方向为首,Y正方向为尾,右手定则告诉我们,纸面向外是面积的正方向;如果反过来,那么纸面向内就是该面积的正方向,与规定的正方向相反,取负号。
根据面积映射的线性性质,有:
η(a, b), (c, d)) = η(a(1,0), d(0,1)) - η(c(1,0), d(0,1)) = ad - bc
恰好是两个行向量组成的矩阵的行列式。因此,行列式是面积的推广,在多维情况下,行列式是N纬广义四边形的超体积。在高维的情况下,难以使用右手法则来说明超体积了,需要使用之前介绍的数学计算方法。但是我们依然可以形象地理解,交换两个向量,根据右手法则,行列式是需要变号的。
2. 线性无关的几何意义
给定一组矢量,什么是他们线性无关性?从几何意义上说,一组矢量的线性相关性,在本质上,是描述他们所张成的广义平行四边形体积是否为零。
从最简单的2维空间开始考虑,如果两个2维空间的向量是线性相关的,那么就是说,其中一个向量与另外一个共线,也就是说,他们所张成的四边形,面积是零。反之,如果线性无关,则不共线,则面积不为零。
同理,如果三个三维空间的向量是线性无关的,那么他们三者就不共面。因此他们所张成的平行六面体,体积不是零。
更进一步,二维空间如果给定三个向量,他们必定共面,因此他们必定线性相关。推而广之,不难理解,一个维度为N的空间内,任意一组M个向量(M>N)必定线性相关,因为维度大于空间维度的超平形四边体不存在。
综上:线性无关矢量组成的矩阵的行列式不为零;线性相关矢量组成的矩阵的行列式必为零。
3. 线性相关与可逆性的关系
在几何意义上,矩阵表示一种线性的映射。
根据行列式的几何意义,设有一个线性变换用矩阵A表示,有一组向量a1,.....an,经过映射后的向量做张成的超四边体的体积为:
这说明,变换后的超体积等于A的行列式与原体积的乘积,即A的行列式代表了在变换过程中,体积的缩放比率。
如果A的行列式如果不为零,则代表这个变换后,N维体的体积不是0。
又结合线性无关与体积的性质,我们可以说:
如果A的行列式不为零,那么A可以把一组线性无关的矢量,映射成一组新的,线性无关的矢量;A是可逆的(一对一的映射,保真映射,KERNEL是)。
如果A的行列式为零,那么A就会把一组线性无关的矢量,映射成一组线性相关的矢量;A就不是可逆的(非保真映射,KERNEL不是,我们可以研究他的陪集)。
如果A的行列式为负数,那么A将会改变原N维体体积的朝向。
4. 矩阵的秩
有时候,虽然A并不能保证把空间一组最大数目矢量的线性无关性,但它能保证一组更少数目矢量的线性无关性。这个数目往往少于A的维度(或者说,线性空间的维度),这个数目就叫做线性变换A的秩。
例如,一个秩为2的三乘三矩阵A。因为秩小于3,那么任何一个3维六面体经过他的变换后,体积都为零(退化一个面);但存在一个面积不为零的面,在变换之后还可以是一个非零面积的面。
所谓一个线性变换的秩,就是变换后,还能保持非零体积的几何形状的最大维度。
计算矩阵的秩,可以通过初等行变换将矩阵的某些行列变换为0,非0行的维度数就是矩阵的秩。
5. 实例
线性映射直观上有以下三个要点:
(1)变换前是直线的,变换后依然是直线
(2)直线比例保持不变
(3)变换前是原点的,变换后依然是原点
矩阵A代表的线性映射实质上是对基向量的变换。有AI = A可以理解,A的列向量实质上就是变换后的基向量。(使用变换后的基向量,各个变量之间的比例仍然不变,但基向量本身的大小发生了变化,所以变换后的体积会有缩放。)
因此,在行列式不为0的矩阵A的作用下,发生的是几何空间的旋转或者推移,A的行列式是超体积的缩放率。而如果A的行列式为0,则变换后的空间至少减少一个维度,几何体发生了压缩,这个过程中就丢失了高维度的细节信息,是无法还原的,因此A是不可逆的。
在《三体》中有一种武器叫做『二向箔』,可以实现对太阳系的降维攻击,从数学上看,「二向箔」就是一个行列式为,秩比维度少1的一个线性变换。
6. 特征值和特征向量
先来看相似矩阵。
矩阵A代表的线性变换都是基于基向量的,通常的直角坐标系就是由两个相互正交的向量组成的基向量构成的。同一个线性变换在不同的基下的矩阵,就是相似矩阵。
图中,V1和V2是两个基,转换关系如图中灰色部分所示。因此,我们有:
Bv' = P-1 A P v'
B = P-1 A P
B和A互为相似矩阵。
而P是从V2到V1的变换,因此P的列向量就是i',j'在i,j下的坐标,也就是变换后的基。可以通过以下数学方式证明,设在i',j'的基下有向量v',则:
所以,。
这样,就可以把同一个线性变换转换到另一种基下进行操作。更特别的,如果矩阵A可以对角化,则可以进行如下的特征值分解:
其中P的列向量是单位特征向量且相互正交,中间的对角矩阵代表了在新的基下的缩放操作。与Av = λv(即向量经过A的变换等同于对向量的伸缩)联系起来,可得:在新的基下,特征向量指明了拉伸的方向,特征值就是拉伸的大小。
领取专属 10元无门槛券
私享最新 技术干货