如何理解矩阵特征值?
【李浩的回答(334票)】:
补充:答主现在用到的多数是对称矩阵或酉矩阵的情况,有思维定势了,写了半天才发现主要讲的是对称矩阵,这答案就当科普用了。特征值在很多领域应该都有自己的用途,它的物理意义到了本科高年级或者研究生阶段涉及到具体问题的时候就容易理解了,刚学线性代数的话,确实抽象。
——————————————————以下为正文——————————————————
从线性空间的角度看,在一个定义了内积的线性空间里,对一个N阶对称方阵进行特征分解,就是产生了该空间的N个标准正交基,然后把矩阵投影到这N个基上。N个特征向量就是N个标准正交基,而特征值的模则代表矩阵在每个基上的投影长度。
特征值越大,说明矩阵在对应的特征向量上的方差越大,功率越大,信息量越多。
应用到最优化中,意思就是对于R的二次型,自变量在这个方向上变化的时候,对函数值的影响最大,也就是该方向上的方向导数最大。
应用到数据挖掘中,意思就是最大特征值对应的特征向量方向上包含最多的信息量,如果某几个特征值很小,说明这几个方向信息量很小,可以用来降维,也就是删除小特征值对应方向的数据,只保留大特征值方向对应的数据,这样做以后数据量减小,但有用信息量变化不大。
——————————————————举两个栗子——————————————————
应用1 二次型最优化问题
二次型
,其中R是已知的二阶矩阵,R=[1,0.5;0.5,1],x是二维列向量,x=[x1;x2],求y的最小值。
求解很简单,讲一下这个问题与特征值的关系。
对R特征分解,特征向量是[-0.7071;0.7071]和[0.7071;0.7071],对应的特征值分别是0.5和1.5。
然后把y的等高线图画一下
从图中看,函数值变化最快的方向,也就是曲面最陡峭的方向,归一化以后是[0.7071;0.7071],嗯哼,这恰好是矩阵R的一个特征值,而且它对应的特征向量是最大的。因为这个问题是二阶的,只有两个特征向量,所以另一个特征向量方向就是曲面最平滑的方向。这一点在分析最优化算法收敛性能的时候需要用到。从图中看,函数值变化最快的方向,也就是曲面最陡峭的方向,归一化以后是[0.7071;0.7071],嗯哼,这恰好是矩阵R的一个特征值,而且它对应的特征向量是最大的。因为这个问题是二阶的,只有两个特征向量,所以另一个特征向量方向就是曲面最平滑的方向。这一点在分析最优化算法收敛性能的时候需要用到。
二阶问题比较直观,当R阶数升高时,也是一样的道理。
应用2 数据降维
兴趣不大的可以跳过问题,直接看后面降维方法。
机器学习中的分类问题,给出178个葡萄酒样本,每个样本含有13个参数,比如酒精度、酸度、镁含量等,这些样本属于3个不同种类的葡萄酒。任务是提取3种葡萄酒的特征,以便下一次给出一个新的葡萄酒样本的时候,能根据已有数据判断出新样本是哪一种葡萄酒。
问题详细描述:UCI Machine Learning Repository: Wine Data Set
训练样本数据:http://archive.ics.uci.edu/ml/machine-learning-databases/wine/wine.data
原数据有13维,但这之中含有冗余,减少数据量最直接的方法就是降维。
做法:把数据集赋给一个178行13列的矩阵R,它的协方差矩阵
,C是13行13列的矩阵,对C进行特征分解,对角化
,其中U是特征向量组成的矩阵,D是特征之组成的对角矩阵,并按由大到小排列。然后,另
,就实现了数据集在特征向量这组正交基上的投影。嗯,重点来了,R’中的数据列是按照对应特征值的大小排列的,后面的列对应小特征值,去掉以后对整个数据集的影响比较小。比如,现在我们直接去掉后面的7列,只保留前6列,就完成了降维。这个降维方法叫PCA(Principal Component Analysis)。
下面看结果:
这是不降维时候的分类错误率。这是不降维时候的分类错误率。
这是降维以后的分类错误率。
结论:降维以后分类错误率与不降维的方法相差无几,但需要处理的数据量减小了一半(不降维需要处理13维,降维后只需要处理6维)。
【郑梓豪的回答(51票)】:
我举一个直观一点的例子吧...我也喜欢数学的直观之美。
我们知道,一张图像的像素(如:320 x 320)到了计算机里面事实上就是320x320的矩阵,每一个元素都代表这个像素点的颜色..
如果我们把基于特征值的应用,如PCA、向量奇异值分解SVD这种东西放到图像处理上,大概就可以提供一个看得到的、直观的感受。关于SVD的文章可以参考LeftNotEasy的文章:机器学习中的数学(5)-强大的矩阵奇异值分解(SVD)及其应用
简单的说,SVD的效果就是..用一个规模更小的矩阵去近似原矩阵...
这里A就是代表图像的原矩阵..其中的
尤其值得关注,它是由A的特征值从大到小放到对角线上的..也就是说,我们可以选择其中的某些具有“代表性”的特征值去近似原矩阵!
左边的是原始图片
当我把特征值的数量减少几个的时候...后面的图像变“模糊”了..当我把特征值的数量减少几个的时候...后面的图像变“模糊”了..
同样地...同样地...
关键的地方来了!如果我们只看到这里的模糊..而没有看到计算机(或者说数学)对于人脸的描述,那就太可惜了...我们看到,不论如何模糊,脸部的关键部位(我们人类认为的关键部位)——五官并没有变化太多...这能否说:数学揭示了世界的奥秘?
【未知的回答(7票)】:
特征值不仅仅是数学上的一个定义或是工具,特征值是有具体含义的,是完全看得见摸得着的。
1. 比如说一个三维矩阵,理解成线性变换,作用在一个球体上:
三个特征值决定了 对球体在三个维度上的拉伸/压缩,把球体塑造成一个橄榄球;
剩下的部分决定了这个橄榄球在三维空间里面怎么旋转。
2. 对于一个微分方程:
将系数提取出来
对角化:
其中
由于
定义
于是有
因此y的变化率与特征值息息相关:
再将y由Q变换回x,我们就能得出x在不同时间的值。x的增长速度就是特征值λ,Q用来把x旋转成y。
【江磊的回答(13票)】:
站在线性变换的角度来看矩阵的话。
矩阵(线性变换)作用在一个向量上无非是将该向量伸缩(包括反向伸缩)与旋转。
忽略复杂的旋转变换,只考虑各个方向(特征方向)伸缩的比例,所提取出的最有用,最关键的信息就是特征值了。
【陈十三的回答(3票)】:
特征向量可以看作坐标向量,特征值就是矩阵在该坐标方向上的分量大小值,特征分析相当于提取矩阵的信息出来吧。较大的特征值对应的特征向量就较为重要,矩阵降维就用的提取主特征向量思想。
【黄培浩的回答(2票)】:
作为一个线性代数考60+的学渣,我是这么直观地理解的:
把式子中的
看作一个线性变换,那么这个定义式就表示对于 向量
而言,经过
变换之后该向量的方向没有变化(可能会反向),而只是长度变化了(乘以
)。
也就是对于变换
来说,存在一些“不变”的量(比如特征向量
的方向),我想,“特征”的含义就是“不变”。
而特征值
,如你所见,就是变换
在特征方向上的伸展系数吧(乱诹了个名词 :P)。
嗯,觉得维基其实讲的就挺好的:https://zh.wikipedia.org/wiki/%E7%89%B9%E5%BE%81%E5%90%91%E9%87%8F
【单英晋的回答(0票)】:
什么是方阵?方阵就是n维线性空间上的线性变换。那么我们总要考虑最简单的情况:什么是一维的线性变换呢?就是简单的常数倍拉伸
A: x -> ax
在高维的时候,线性变换A的结构可能很复杂,但它总会保持某些一维子空间不变。在这些子空间上它的限制就是一个一维线性变换,这个变换的拉伸常数就是A在这个子空间上的特征值。
【yz的回答(0票)】:
抛个砖
如果某个物理系统的若干变量的关系可用含参数的矩阵表示。参数满足特征方程时,齐次形式表明此时的系统变量在输入为零时可达无穷大,表明系统在该参数下不稳定。故特征值由系统参数决定,并可反求之。
【陆燕南的回答(0票)】:
特徵向量反映了線性變換的方向;特徵值反映線性變換在各方向上導致的形變大小。
【Gilbert的回答(0票)】:
定义很抽象我也一直搞不懂,但是最近开始在图像处理方面具体应用的时候就清晰很多了,用学渣的语言沟通一下吧我们。
抛开学术研究不谈,其实根本不会,特征值eigenvalue和特征向量eigenvector的一大应用是用于大量数据的降维
比如拿淘宝举个例子,每个淘宝店铺有N个统计数据:商品类型,日销量周销量月销量、好评率中评差评率……全淘宝有M家店铺,那么服务器需要记录的数据就是M*N的矩阵;
这是一个很大的数据,实际上我们可以通过求这个矩阵的特征向量和对应的特征值来重新表示这个M*N的矩阵:
我们可以用周销量来误差不大的表示日销量和月销量(除以七和乘以四),这个时候月销量就可以当作一个特征向量,它能够表示每个店铺销量这个空间方向的主要能量(也就是数据),这样我们就简略的把一个35维的向量简化成四维的(30个日销量加4个周销量加1个月销量);
同理我们也可以把好评率中评率差评率用一个好评率来表示(剩余的百分比默认为差评率),这样的降维大致上也能反映一个店铺的诚信度;
这样通过不断的降维我们可以提取到某系列数据最主要的几个特征向量(对应特征值最大的),这些向量反映了这个矩阵空间最主要的能量分布,所以我们可以用这几个特征向量来表示整个空间,实现空间的降维。
这个方法叫做Principle Components Analysis,有兴趣的同学可以wiki一下。
学渣飘过了
原文地址:知乎