特征值与特征向量补充

R 数据科学的线性代数

Eric Eager

Data Scientist at Pro Football Focus

原理是什么?

  • 若矩阵 A 的特征值 $\lambda_1, \lambda_2, ..., \lambda_n$ 两两不同,且 $\vec{v}_1, \vec{v}_2, ..., \vec{v}_n$ 为对应特征向量,则这些向量构成 $n$ 维向量空间的一个基。

  • 换言之,若 A 具有以 $\vec{v}_1, \vec{v}_2, ... \vec{v}_n$ 为基的特征向量,且对应特征值 $\lambda_1, \lambda_2, ... \lambda_n$ 互异,则任意 $n$ 维向量都可表示为它们的线性组合: $$\vec{x} = c_1\vec{v}_1 + c_2\vec{v}_2 + ... + c_n\vec{v}_n.$$

R 数据科学的线性代数

原理是什么?

将矩阵 $A$ 作用于 $\vec{x}$,并利用 $A\vec{v}_j = \lambda_j \vec{v}_j$,可得分解:

$$A\vec{x} = c_1\lambda_1\vec{v}_1 + c_2\lambda_2\vec{v}_2 + ... + c_n\lambda_n\vec{v}_n.$$

因此,特征对将矩阵乘法化为标量乘法的线性组合!

R 数据科学的线性代数

矩阵迭代

若反复与矩阵 $A$ 相乘:

$$A A\vec{x} = $$ $$ = A(c_1\lambda_1\vec{v}_1 + c_2\lambda_2\vec{v}_2 + ... + c_n\lambda_n\vec{v}_n)$$ $$ = c_1\lambda_1^2\vec{v}_1 + c_2\lambda_2^2\vec{v}_2 + ... + c_n\lambda_n^2\vec{v}_n,$$

一般地: $$A^t\vec{x} = c_1\lambda_1^t\vec{v}_1 + c_2\lambda_2^t\vec{v}_2 + ... + c_n\lambda_n^t\vec{v}_n.$$

因此,连续的矩阵相乘对应于各标量的幂次放大,而非一次次相同的标量相乘!

另外,若某个特征值最大,随 $t$ 增大,其与其他特征值的差异将被放大。

R 数据科学的线性代数

等位基因频率示例

R 数据科学的线性代数
print(M)

eigen(M)
      [,1]  [,2]  [,3]  [,4]
[1,] 0.980 0.005 0.005 0.010
[2,] 0.005 0.980 0.010 0.005
[3,] 0.005 0.010 0.980 0.005
[4,] 0.010 0.005 0.005 0.980
eigen() decomposition
$`values`
[1] 1.00 0.98 0.97 0.97

$vectors
     [,1] [,2]          [,3]          [,4]
[1,] -0.5  0.5  0.000000e+00  7.071068e-01
[2,] -0.5 -0.5 -7.071068e-01  1.132427e-14
[3,] -0.5 -0.5  7.071068e-01 -2.442491e-15
[4,] -0.5  0.5 -1.382228e-14 -7.071068e-01
R 数据科学的线性代数
print(M)
      [,1]  [,2]  [,3]  [,4]
[1,] 0.980 0.005 0.005 0.010
[2,] 0.005 0.980 0.010 0.005
[3,] 0.005 0.010 0.980 0.005
[4,] 0.010 0.005 0.005 0.980
Lambda <- eigen(M)
v1 <- Lambda$vectors[, 1]/sum(Lambda$vectors[, 1])
print(v1)
0.25 0.25 0.25 0.25

R 数据科学的线性代数

¡Vamos a practicar!

R 数据科学的线性代数

Preparing Video For Download...