主成分分析(PCA)全面解析:原理、应用与实践
1. PCA与奇异值分解(SVD)的关系
在数据分析中,PCA和SVD是两个重要的概念。奇异值分解(SVD)能将矩阵M分解为两个矩阵U和V,以及一个奇异值向量D,即 $M = UDV^T$。将上矩阵U与对角矩阵D(其对角值由奇异值向量D给出)相乘,能像用旋转矩阵乘以原始数据一样,将数据投影到新坐标上。例如,使用R语言的 svd 命令实现与 prcomp 命令相同的旋转操作:
svd.sample <- svd(matrix(c(x,y), ncol = 2))
manual.rotation <- svd.sample$u %*% -diag(svd.sample$d)
plot(manual.rotation[,1], manual.rotation[,2], xlim = c(0, 150), ylim = c(-75, 75))
2. 缩放与未缩放的PCA
数据缩放可能会产生很大影响。当数据集中的变量尺度不同时,协方差的特征值分解或原始数据的SVD可能会让人误以为数据在具有最大值的变量方向上对齐。例如,在葡萄酒数据集里:
red.wine <- read.csv('winequality-red.txt')
wine.eigen.cov <- eigen(cov(red.wine[,-12]))
wine.eigen.cor <- eigen(cor(red.wine[,-1
超级会员免费看
订阅专栏 解锁全文
1335

被折叠的 条评论
为什么被折叠?



