奇异值分解与PCA

一、奇异值分解

每个矩阵A都可以分解成若干个小矩阵之和:

A=σ₁Β₁+σ₂Β₂+....

σ是奇异值,按从大到小排序

奇异值越大,σiBi所含的信息越重要

去噪音原理:噪音通常包含在奇异值小的项中,可以令小的奇异值为0来去噪音。

numpy.linalg.svd()

二、PCA

n个Sample,m个feature,形成:

X是m*n维的矩阵

是协方差矩阵,代表各feature间相关性,角对称矩阵

现在要对X变换,使C非对角线上的值尽量为0,对角线上的值尽量大,即feature间不相关,而某个feature的方差尽量大。

方法就是求C的特征值和特征向量。

把特征向量按特征值从大到小排序,取前k个特征向量形成矩阵P,P是k*m维的

P(k*m维)·X(m*n维)=newX(k*n维)

这样就把X降维了

PCA的原则:最近重构性(投影距离最小)和最大可分性(样本点尽量分开,即方差最大)

步骤:

1.中心化:x'=x-μ

2.算协方差

3.特征值分解,选最大的k个特征向量,作为投影矩阵

4.用投影矩阵计算新的样本值

PCA与LR的区别:



猜你喜欢

转载自blog.csdn.net/rona1/article/details/80700907