
【老计带你懂线性代数】09特征值与特征向量矩阵最本质的方向开头矩阵也有它的脾气从这一篇开始我们进入线性代数里最有魔力、也是AI最倚重的部分。特征值和特征向量名字听着吓人但它抓住的东西极其深刻一个矩阵变换最本质的性格藏在它的特征值和特征向量里。PCA降维靠它、谷歌的PageRank靠它、很多AI里的谱方法、稳定性分析都靠它。可以说理解了特征值和特征向量你就拿到了打开AI很多核心算法的钥匙。这一篇不堆公式用几何直觉把它讲透。一个变换里的特殊方向回忆第06篇一个矩阵就是对空间的一次变换旋转、缩放、拉扯。变换发生时空间里绝大多数向量方向都会被改变它们被转向了别处。但是有那么几个特殊的方向变换之后方向纹丝不动只是被拉长或缩短了。这些方向上的向量就是特征向量被拉长或缩短的倍数就是特征值。用大白话说特征向量是这个变换的骨干方向变换再怎么折腾整个空间这几个方向始终指着原来的朝向或恰好反向只是长度变了。特征值告诉你在这个骨干方向上变换到底是拉伸大于1、压缩0到1之间、还是翻转负数。打个比方想象你揉捏一块橡皮泥变换空间大部分纹路都被揉得改变了方向乱成一团。但有几条特殊的纹路你怎么揉它们始终指着原来的方向只是变长了或变短了。这几条打不弯的纹路就是特征向量它们各自变长变短的倍数就是特征值。它们是这次揉捏动作骨子里的主方向。这里要打消一个顾虑怎么求出特征值和特征向量你完全不用手算。手工求解要解一个叫特征方程的东西几阶以上就非常繁琐那是数学课折磨人的地方。但在AI和工程里这活儿百分之百交给计算机NumPy一行np.linalg.eig就把所有特征值特征向量给你算出来了又快又准。你要掌握的不是怎么算而是算出来的东西是什么意思、能拿来干什么。这也是这个系列一贯的立场理解直觉和用途把计算交给工具。就像你开车不需要会造发动机用特征值不需要会手工求解。抓住方向不变、只被缩放的主方向这个含义知道它能帮你找出数据或变换的主结构会用NumPy求出来并解读对搞AI的人就完全够用了。真正重要的是下一篇要讲的怎么把它用到降维上让这个抽象工具变成实实在在的本领。为什么它揭示了矩阵的本质为什么说特征向量特征值抓住了矩阵的本质因为它们把一个复杂的变换拆解成了几个最简单的动作在几个特定方向上的纯拉伸缩放。一个矩阵作用在空间上看起来又转又拉、很复杂。但如果你站在它的特征向量方向上看一切都变得极简在这些方向上变换什么花样都没有就是单纯地按特征值倍数拉伸。特征向量给了我们一副看穿这个变换的眼镜透过它复杂的变换现出了最朴素的本来面目。而且特征值的大小直接告诉你哪个方向是这个变换里最重要、影响最大的方向。特征值最大的那个特征向量是变换拉伸得最狠的方向往往就是数据里信息最集中、最主要的方向。这一点是PCA的直接基础下一篇会看到找数据里方差最大的主方向就是找协方差矩阵最大特征值对应的特征向量。一个生活化的例子找到人群的主方向为了让特征向量特征值更接地气举个数据分析的画面。想象一堆人的身高体重数据画成散点图。你会发现这堆点大致沿着一个方向拉成一个椭圆因为身高和体重是正相关的高的人往往也重。这堆数据的分布可以用一个矩阵协方差矩阵来描述。而这个矩阵的特征向量恰好指向数据散布的主方向和次方向。最大特征值对应的特征向量指向椭圆的长轴也就是数据变化最大、最主要的方向身高体重一起增长的那个综合趋势小特征值对应的特征向量指向短轴是次要的、变化小的方向。看特征向量帮我们从一堆杂乱的点里自动找出了它们分布的骨架方向。这正是它在数据分析里的核心价值从数据里提取出最主要的变化方向。你如果只想用一个数字概括每个人降到一维最好的办法就是把他们投影到那条长轴最大特征向量上这个投影保留了最多的信息。这就是下一篇PCA的核心思想而它的引擎正是特征值和特征向量。理解了这个画面PCA对你就不再是黑箱。输入和输出长什么样输入一个方阵特征值特征向量只对方阵有定义。输出一组特征值每个是一个数和对应的一组特征向量每个是一个向量。一个n乘n的矩阵通常有n个特征值和特征向量。NumPy里用np.linalg.eig一次求出所有特征值和特征向量。上代码找出矩阵的特征值和特征向量# 依赖pip install numpyimportnumpyasnp# 一个变换矩阵Anp.array([[2,0],[0,3]])# 这个对角矩阵含义:横方向拉2倍、纵方向拉3倍# 直觉上,横轴和纵轴就是它的特征方向,特征值分别是2和3eigenvalues,eigenvectorsnp.linalg.eig(A)print(特征值:,eigenvalues)# [2. 3.]print(特征向量(每一列是一个):\n,eigenvectors)# 验证特征向量的定义:矩阵乘特征向量 特征值乘特征向量(方向不变,只缩放)veigenvectors[:,1]# 取第二个特征向量print(\n验证第二个特征向量:)print( A乘v ,A v)print( 特征值乘v ,eigenvalues[1]*v)print( 两者相等,说明A作用在v上只是把它拉长了,方向没变)# 一个更一般的矩阵(不是对角的),特征方向就没那么显然了Bnp.array([[2,1],[1,2]])vals,vecsnp.linalg.eig(B)print(\n矩阵B的特征值:,np.round(vals,3))# [3. 1.]print(B的特征向量:\n,np.round(vecs,3))print(最大特征值3对应的方向,是B拉伸得最狠、最主要的方向)# 对比:一个普通向量会被改变方向unp.array([1,0])print(\n普通向量[1,0]经B变换后:,B u,(方向被改变了,不是特征向量))运行输出示例特征值: [2. 3.] 特征向量(每一列是一个): [[1. 0.] [0. 1.]] 验证第二个特征向量: A乘v [0. 3.] 特征值乘v [0. 3.] 两者相等,说明A作用在v上只是把它拉长了,方向没变 矩阵B的特征值: [3. 1.] B的特征向量: [[ 0.707 -0.707] [ 0.707 0.707]] 最大特征值3对应的方向,是B拉伸得最狠、最主要的方向 普通向量[1,0]经B变换后: [2 1] (方向被改变了,不是特征向量)运行你会看到对角矩阵A的特征值就是2和3横纵方向的拉伸倍数、特征向量就是横轴纵轴验证了A乘特征向量等于特征值乘特征向量方向不变只缩放矩阵B的特征值是3和1最大特征值3对应的方向是它拉伸最狠的主方向而普通向量[1,0]经B变换后方向改变了说明它不是特征向量。核心就是那个验证特征向量经过变换方向不变、只被按特征值缩放这就是它的定义。在AI里怎么用特征值特征向量是AI里一批核心算法的共同基石PCA降维数据协方差矩阵的特征向量就是主成分特征值大的方向就是方差大、信息多的方向第10篇会彻底讲透呼应《老计带你懂AI算法》的PCA篇。PageRank谷歌搜索的起家算法把网页链接关系写成矩阵它的主特征向量就给出了每个网页的重要性排名。特征向量在这里成了谁最重要的答案。谱聚类用矩阵的特征向量来做聚类处理复杂形状的数据。稳定性与动力学分析特征值的大小决定一个系统是收敛还是发散在优化、循环网络的稳定性里有用。一句话凡是要找一个矩阵或一堆数据里最主要、最本质的方向基本都会用到特征值和特征向量。它是从数据里提取主结构的通用工具。这里补一个对PCA很关键的知识点对称矩阵的特征向量特别好、特别听话。什么是对称矩阵就是沿对角线翻折后和自己一样的方阵。AI里一个极重要的矩阵数据的协方差矩阵描述各特征之间怎么一起变化的恰好就是对称矩阵。对称矩阵有两个漂亮性质它的特征值一定是实数不会冒出复数来添乱而且不同特征值对应的特征向量互相垂直正交。互相垂直意味着这些主方向彼此独立、不重叠正好可以当作一组理想的新坐标轴。打个比方对称矩阵的特征向量就像给数据量身定做的一套横平竖直、互不干涉的新坐标系。这为什么重要因为下一篇的PCA正是要给数据换一套更好的坐标系还记得第07篇说的换基吗而协方差矩阵是对称的保证了PCA找出的那些主成分方向天然互相垂直、干净利落用起来毫无后顾之忧。你现在不用深究只要记住协方差矩阵是对称的、它的特征向量正交又是实数这是PCA能优雅工作的数学保障。这个铺垫会让你下一篇看PCA时格外顺畅。常见误区特征值特征向量只对方阵有定义长方形矩阵没有但有下下篇讲的奇异值是它的推广。特征向量的长度不重要方向才重要NumPy给出的是长度归一化的版本你也可以随意缩放它还是特征向量。不是所有方阵都有实数特征值比如纯旋转矩阵的特征值是复数因为旋转没有方向不变的实向量但AI里常用的对称矩阵如协方差矩阵一定有实特征值不用担心。别被名字劝退抓住变换中方向不变、只被缩放的特殊方向这一个画面就够用了。小结与承上启下特征向量变换中方向纹丝不动、只被拉伸缩短的特殊方向是变换的骨干方向。特征值对应特征向量被拉伸缩短的倍数正是拉伸、负是翻转、绝对值是缩放程度。为什么重要它把复杂变换拆成几个方向上的纯缩放揭示矩阵本质特征值最大的方向是最主要的方向。AI应用PCA、PageRank、谱聚类、稳定性分析的共同基石用来提取数据的主结构。我们知道了特征值特征向量能找出矩阵的主方向。下一篇就把它用起来讲特征分解与PCA看数据协方差矩阵的特征向量怎么就成了主成分把降维这件事从线代的根上彻底讲透和前面两个系列的PCA彻底打通。我们下一篇见。延伸阅读3Blue1Brown《线性代数的本质》特征值与特征向量这一集的几何讲解堪称经典https://www.3blue1brown.com/topics/linear-algebraNumPy 官方文档np.linalg.eighttps://numpy.org/doc/stable/reference/generated/numpy.linalg.eig.htmlPageRank 与特征向量的关系可按关键词PageRank eigenvector检索说明以上为官方与经典公开资料地址可能随版本调整如打不开可用标题搜索。