理论要点
(1)主成分分析是一种无监督学习,因此不能用交叉验证来检验误差
(2)在处理数据之前,要对数据做中心化处理
(3)p太大的话,做特征分解用SVD
(4)一共有min(n-1,p)个主成分,因为中心化以后,rank要降一维
(5)主成分的载荷向量就是协方差矩阵的特征向量,对应特征值最大的是第一主成分,第二大的是第二主成分
(6)另外一个解释:min||X-XWWT||^2=1,st WWT=1,反转回去之后,误差最小
(7)PVE=特征值/特征值之和,tr(协方差矩阵)=特征值之和
实验过程
工具:R语言
调用的函数:prcomp()函数
用USArrests数据集做主成分分析实验
states=row.names(USArrests)
statesnames(USArrests)
apply(USArrests,2,mean)
#apply()函数是对数据集的每一行或列使用同一个函数,1表示行,2表示列
apply(USArrests,2,var)
pr.out=prcomp(USArrests,scale=TRUE)
names(pr.out)
pr.out$center