当前位置: 首页 > news >正文

特征值与特征向量的计算——PCA的数学基础

特征值与特征向量

定义 A {\bm A} A n × n n \times n n×n矩阵,如果存在非零向量 x {\bm x} x使得

A x = λ x (1) {\bm A}{\bm x} = \lambda {\bm x}\tag{1} Ax=λx(1)

成立,则称数 λ \lambda λ是矩阵 A {\bm A} A特征值,称非零向量 x {\bm x} x为属于(或对应于) λ \lambda λ特征向量

线性变换对特征向量的作用仅是进行某种程度的收缩或拉伸,特征值是收缩或拉伸的倍数(缩放因子)。

需要注意的是,定义中特征向量 x ≠ 0 \boldsymbol{x} \neq \boldsymbol{0} x=0; 矩阵 A \boldsymbol{A} A是方阵,也就是说,特征值问题只针对方阵而言。

例 设

A = [ 4 − 2 1 1 ] 及 x = [ 2 1 ] \boldsymbol{A} = \begin{bmatrix} 4 & -2 \\ 1 & 1 \end{bmatrix} \quad \text{及} \quad \boldsymbol{x} = \begin{bmatrix} 2 \\ 1 \end{bmatrix} A=[4121]x=[21]

由于

A x = [ 4 − 2 1 1 ] [ 2 1 ] = [ 6 3 ] = 3 [ 2 1 ] = 3 x \boldsymbol{A}\boldsymbol{x} = \begin{bmatrix} 4 & -2 \\ 1 & 1 \end{bmatrix} \begin{bmatrix} 2 \\ 1 \end{bmatrix} = \begin{bmatrix} 6 \\ 3 \end{bmatrix} = 3 \begin{bmatrix} 2 \\ 1 \end{bmatrix} = 3\boldsymbol{x} Ax=[4121][21]=[63]=3[21]=3x

可得, λ = 3 \lambda = 3 λ=3 A \boldsymbol{A} A的一个特征值,且 x = ( 2 , 1 ) ⊤ \boldsymbol{x} = (2, 1)^\top x=(2,1)为一个属于 λ \lambda λ的特征向量。

事实上,任何 x \boldsymbol{x} x的一个非零倍数都是一个特征向量,因为

A ( α x ) = α A x = α λ x = λ ( α x ) \boldsymbol{A}(\alpha \boldsymbol{x}) = \alpha \boldsymbol{A}\boldsymbol{x} = \alpha \lambda \boldsymbol{x} = \lambda (\alpha \boldsymbol{x}) A(αx)=αAx=αλx=λ(αx)

因此, ( 4 , 2 ) ⊤ (4, 2)^\top (4,2)也是 λ = 3 \lambda = 3 λ=3的特征向量。

方程 A x = λ x \boldsymbol{A}\boldsymbol{x} = \lambda \boldsymbol{x} Ax=λx可写为

( A − λ I ) x = 0 (2) (\boldsymbol{A} - \lambda \boldsymbol{I})\boldsymbol{x} = \boldsymbol{0} \tag{2} (AλI)x=0(2)

因此, λ \lambda λ A \boldsymbol{A} A的特征值的充要条件是式 (2) 有非零解。式 (2) 的解集为 V λ ( A ) = { x ∣ ( A − λ I ) x = 0 } V_{\lambda}(\boldsymbol{A}) = \{\boldsymbol{x} | (\boldsymbol{A} - \lambda \boldsymbol{I})\boldsymbol{x} = \boldsymbol{0}\} Vλ(A)={x(AλI)x=0},它是 R n \mathbb{R}^n Rn的一个子空间。因此,若 λ \lambda λ A \boldsymbol{A} A的一个特征值,则 V λ ( A ) ≠ { 0 } V_{\lambda}(\boldsymbol{A}) \neq \{\boldsymbol{0}\} Vλ(A)={0},且 V λ ( A ) V_{\lambda}(\boldsymbol{A}) Vλ(A)中的任何非零向量均为属于 λ \lambda λ的特征向量。子空间 V λ ( A ) = { x ∣ ( A − λ I ) x = 0 } V_{\lambda}(\boldsymbol{A}) = \{\boldsymbol{x} | (\boldsymbol{A} - \lambda \boldsymbol{I})\boldsymbol{x} = \boldsymbol{0}\} Vλ(A)={x(AλI)x=0}称为对应于特征值 λ \lambda λ的特征子空间。

式 (2) 有非零解的充要条件是 A − λ I \boldsymbol{A} - \lambda \boldsymbol{I} AλI为奇异的,或等价地

det ⁡ ( A − λ I ) = 0 (3) \det(\boldsymbol{A} - \lambda \boldsymbol{I}) = 0 \tag{3} det(AλI)=0(3)

式 (3) 中的行列式展开后得到一个关于 λ \lambda λ n n n次多项式, λ 0 \lambda_0 λ0 A \boldsymbol{A} A的特征值的充要条件是 λ 0 \lambda_0 λ0为多项式 det ⁡ ( A − λ I ) \det(\boldsymbol{A} - \lambda \boldsymbol{I}) det(AλI)的根。因此,有如下定义:

定义 设 A = ( a i j ) n × n \boldsymbol{A} = (a_{ij})_{n \times n} A=(aij)n×n,则

p ( λ ) = det ⁡ ( A − λ I ) = ∣ a 11 − λ a 12 ⋯ a 1 n a 21 a 22 − λ ⋯ a 2 n ⋮ ⋮ ⋱ ⋮ a n 1 a n 2 ⋯ a n n − λ ∣ (4) p(\lambda) = \det(\boldsymbol{A} - \lambda \boldsymbol{I}) = \begin{vmatrix} a_{11} - \lambda & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} - \lambda & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{n1} & a_{n2} & \cdots & a_{nn} - \lambda \end{vmatrix} \tag{4} p(λ)=det(AλI)= a11λa21an1a12a22λan2a1na2nannλ (4)
称为 n n n阶方阵 A \boldsymbol{A} A的特征多项式,式 (3) 称为矩阵 A \boldsymbol{A} A的特征方程。

由定义可知,特征多项式的根即为方阵 A \boldsymbol{A} A的特征值。如果对重根也计数,则特征多项式恰有 n n n个根。因此 A \boldsymbol{A} A将有 n n n个特征值,其中某些可能会重复,特征值可能为实数,也可能会是复数。对后一种情形,需要在复数范围内进行讨论,允许向量和矩阵的元素可以是复数。

由上述讨论可得,求矩阵 A \boldsymbol{A} A的特征值和特征向量的步骤如下:

(1) 计算 n n n阶矩阵 A \boldsymbol{A} A的特征多项式 det ⁡ ( A − λ I ) \det(\boldsymbol{A} - \lambda \boldsymbol{I}) det(AλI);

(2) 求特征方程 det ⁡ ( A − λ I ) = 0 \det(\boldsymbol{A} - \lambda \boldsymbol{I}) = 0 det(AλI)=0所有的根 λ 1 , λ 2 , ⋯ , λ n \lambda_1, \lambda_2, \cdots, \lambda_n λ1,λ2,,λn,即矩阵 A \boldsymbol{A} A的全部特征值;

(3) 对于每一个特征值 λ i \lambda_i λi,求解齐次线性方程组 ( A − λ i I ) x = 0 (\boldsymbol{A} - \lambda_i \boldsymbol{I})\boldsymbol{x} = \boldsymbol{0} (AλiI)x=0的一个基础解系 x 1 , x 2 , ⋯ , x k \boldsymbol{x}_1, \boldsymbol{x}_2, \cdots, \boldsymbol{x}_k x1,x2,,xk,于是 A \boldsymbol{A} A的属于特征值 λ i \lambda_i λi的全部特征向量为

x = c 1 x 1 + c 2 x 2 + ⋯ + c k x k , 其中  c 1 , c 2 , ⋯ , c k 是不全为零的数 \boldsymbol{x} = c_1 \boldsymbol{x}_1 + c_2 \boldsymbol{x}_2 + \cdots + c_k \boldsymbol{x}_k, \quad \text {其中 } c_1, c_2, \cdots, c_k \text{ 是不全为零的数} x=c1x1+c2x2++ckxk,其中 c1,c2,,ck 是不全为零的数

例 求矩阵 A = [ 3 2 3 − 2 ] \boldsymbol{A} = \begin{bmatrix} 3 & 2 \\ 3 & -2 \end{bmatrix} A=[3322]的特征值和特征向量。

解: A \boldsymbol{A} A的特征多项式为

∣ A − λ I ∣ = ∣ 3 − λ 2 3 − 2 − λ ∣ = λ 2 − λ − 12 |\boldsymbol{A} - \lambda \boldsymbol{I}| = \begin{vmatrix} 3 - \lambda & 2 \\ 3 & -2 - \lambda \end{vmatrix} = \lambda^2 - \lambda - 12 AλI= 3λ322λ =λ2λ12

所以 A \boldsymbol{A} A的特征值为 λ 1 = 4 , λ 2 = − 3 \lambda_1 = 4, \lambda_2 = -3 λ1=4,λ2=3

λ 1 = 4 \lambda_1 = 4 λ1=4时,解方程组 ( A − 4 I ) x = 0 (\boldsymbol{A} - 4 \boldsymbol{I})\boldsymbol{x} = \boldsymbol{0} (A4I)x=0,由

A − 4 I = [ − 1 2 3 − 6 ] → [ 1 − 2 0 0 ] \boldsymbol{A} - 4 \boldsymbol{I} = \begin{bmatrix} -1 & 2 \\ 3 & -6 \end{bmatrix} \rightarrow \begin{bmatrix} 1 & -2 \\ 0 & 0 \end{bmatrix} A4I=[1326][1020]

得基础解系为 x 1 = ( 2 , 1 ) ⊤ \boldsymbol{x}_1 = (2, 1)^\top x1=(2,1),因此 c 1 x 1 c_1 \boldsymbol{x}_1 c1x1 c 1 ≠ 0 c_1 \neq 0 c1=0)为 A \boldsymbol{A} A的属于特征值 4 的特征向量。

λ 2 = − 3 \lambda_2 = -3 λ2=3时,解方程组 ( A + 3 I ) x = 0 (\boldsymbol{A} + 3 \boldsymbol{I})\boldsymbol{x} = \boldsymbol{0} (A+3I)x=0,由

A + 3 I = [ 6 2 3 1 ] → [ 3 1 0 0 ] \boldsymbol{A} + 3 \boldsymbol{I} = \begin{bmatrix} 6 & 2 \\ 3 & 1 \end{bmatrix} \rightarrow \begin{bmatrix} 3 & 1 \\ 0 & 0 \end{bmatrix} A+3I=[6321][3010]

得基础解系为 x 2 = ( − 1 , 3 ) ⊤ \boldsymbol{x}_2 = (-1, 3)^\top x2=(1,3),因此 c 2 x 2 c_2 \boldsymbol{x}_2 c2x2 c 2 ≠ 0 c_2 \neq 0 c2=0)为 A \boldsymbol{A} A的属于特征值 -3 的特征向量。

例 求矩阵

[ 2 − 3 1 1 − 2 1 1 − 3 2 ] \begin{bmatrix} 2 & -3 & 1 \\ 1 & -2 & 1 \\ 1 & -3 & 2 \end{bmatrix} 211323112

的特征值和特征向量。

解: A \boldsymbol{A} A的特征多项式为

∣ A − λ I ∣ = ∣ 2 − λ − 3 1 1 − 2 − λ 1 1 − 3 2 − λ ∣ = − λ ( λ − 1 ) 2 | \boldsymbol{A} - \lambda \boldsymbol{I} | = \begin{vmatrix} 2 - \lambda & -3 & 1 \\ 1 & -2 - \lambda & 1 \\ 1 & -3 & 2 - \lambda \end{vmatrix} = -\lambda (\lambda - 1)^2 AλI= 2λ1132λ3112λ =λ(λ1)2

所以 A \boldsymbol{A} A的特征值为 λ 1 = 0 , λ 2 = λ 3 = 1 \lambda_1 = 0, \lambda_2 = \lambda_3 = 1 λ1=0,λ2=λ3=1

λ 1 = 0 \lambda_1 = 0 λ1=0时,解方程组 A x = 0 \boldsymbol{A}\boldsymbol{x} = \boldsymbol{0} Ax=0,由

A = [ 2 − 3 1 1 − 2 1 1 − 3 2 ] → [ 1 0 − 1 0 1 − 1 0 0 0 ] \boldsymbol{A} = \begin{bmatrix} 2 & -3 & 1 \\ 1 & -2 & 1 \\ 1 & -3 & 2 \end{bmatrix} \rightarrow \begin{bmatrix} 1 & 0 & -1 \\ 0 & 1 & -1 \\ 0 & 0 & 0 \end{bmatrix} A= 211323112 100010110

得基础解系为 x 1 = ( 1 , 1 , 1 ) ⊤ \boldsymbol{x}_1 = (1, 1, 1)^\top x1=(1,1,1),因此 c 1 x 1 c_1 \boldsymbol{x}_1 c1x1 c 1 ≠ 0 c_1 \neq 0 c1=0)为 A \boldsymbol{A} A的属于特征值 0 的特征向量。

λ 2 = λ 3 = 1 \lambda_2 = \lambda_3 = 1 λ2=λ3=1时,解方程组 ( A − I ) x = 0 (\boldsymbol{A} - \boldsymbol{I})\boldsymbol{x} = \boldsymbol{0} (AI)x=0,由

A − I = [ 1 − 3 1 1 − 3 1 1 − 3 1 ] → [ 1 − 3 1 0 0 0 0 0 0 ] \boldsymbol{A} - \boldsymbol{I} = \begin{bmatrix} 1 & -3 & 1 \\ 1 & -3 & 1 \\ 1 & -3 & 1 \end{bmatrix} \rightarrow \begin{bmatrix} 1 & -3 & 1 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \end{bmatrix} AI= 111333111 100300100

得基础解系为 x 2 = ( 3 , 1 , 0 ) ⊤ \boldsymbol{x}_2 = (3, 1, 0)^\top x2=(3,1,0) x 3 = ( − 1 , 0 , 1 ) ⊤ \boldsymbol{x}_3 = (-1, 0, 1)^\top x3=(1,0,1),因此 c 2 x 2 + c 3 x 3 c_2 \boldsymbol{x}_2 + c_3 \boldsymbol{x}_3 c2x2+c3x3 c 2 , c 3 c_2, c_3 c2,c3不全为 0)为 A \boldsymbol{A} A的属于特征值 1 的特征向量。

http://www.xdnf.cn/news/535807.html

相关文章:

  • 扫描项目依赖漏洞
  • Go语言八股文之分库分表
  • 中服云生产线自动化智能化调度生产系统:打造智能制造新标杆
  • 前端子项目打包集成主项目实战指南
  • 高校快递物流管理系统设计与实现(SpringBoot+MySQL)
  • 1.3.3 数据共享、汇聚和使用中的安全目标
  • 蓝桥杯框架-LED蜂鸣器继电器
  • 大中型水闸安全监测系统解决方案
  • C++初阶-vector的底层
  • 解决RAGFlow部署中镜像源拉取的问题
  • 单点登录是是什么?具体流程是什么?
  • 计算圆周率 (python)
  • select * from 按时间倒序排序
  • AT_abc401_d [ABC401D] Logical Filling 题解
  • 经典密码学和现代密码学的结构及其主要区别(1)凯撒密码——附py代码
  • 酒店运营中一次性用品选购要点及扬州卓韵酒店用品的专业咨询服务
  • 初识函数------了解函数的定义、函数的参数、函数的返回值、说明文档的书写、函数的嵌套使用、变量的作用域(全局变量与局部变量)
  • C++ 关于C++中IO流的相关内容 stringstream的相关介绍
  • 「卫星百科」四维高景系列卫星
  • 从API到UI:直播美颜SDK中的滤镜与贴纸功能开发与落地方案详解
  • 理解UDP协议
  • 【二分 优先队列】P3611 [USACO17JAN] Cow Dance Show S|普及+
  • 天才简史——Paolo Fiorini与他的速度障碍法
  • 禁止在Windows命令行输入python后跳转Microsoft Store
  • Java反射机制详解:原理、应用与实战
  • 使用for循环和字典功能,统计字符出现在一个英文句子中的次数(python)
  • 雷电模拟器安装 KitsuneMagisk (原 Magisk-delta)
  • Python训练营打卡DAY30
  • 关于在Unity项目中使用Post Processing插件打包到web端出现的问题
  • 6K型护套连接器DLJ0601(2000)-00