让我们计算下表数据的协方差矩阵:
python中的numpy包计算均值和协方差:
import numpy as np
X = [[2, 0, -1.4], [2.2, 0.2, -1.5], [2.4, 0.1, -1], [1.9, 0, -1.2]]
print(np.mean(X,axis=0))
print(np.cov(np.array(X).T))
得到三个变量的样本均值分别是2.125,0.075和-1.275;协方差矩阵为:
▌特征向量和特征值
向量是具有大小(magnitude)和方向(direction)的几何概念。
特征向量(eigenvector)是由满足如下公式的矩阵得到的一个非零向量:
其中v是特征向量,A是方阵,λ是特征值。经过A变换之后,特征向量的方向保持不变,只是其大小发生了特征值倍数的变化。也就是说,一个特征向量左乘一个矩阵之后等于等比例放缩(scaling)特征向量。德语单词eigen的意思是"属于…或…专有( belonging to or peculiar to)";矩阵的特征向量是属于并描述数据集结构的向量。
特征向量和特征值只能由方阵得出,且并非所有方阵都有特征向量和特征值。如果一个矩阵有特征向量和特征值,那么它的每个维度都有一对特征向量和特征值。矩阵的主成分是由其协方差矩阵的特征向量,按照对应的特征值大小排序得到的。最大的特征值就是第一主成分,第二大的特征值就是第二主成分,以此类推。
计算下面矩阵的特征向量和特征值: