机器学习笔记:主成分分析

匿名 (未验证) 提交于 2019-12-03 00:26:01



(1)使得数据集更易使用 (2)降低算法的计算开销 (3)去除噪声 (4)使得结果容易理解 







3 PCA


去除平均值 计算协方差矩阵 计算协方差矩阵的特征值和特征向量 将特征值从大到小排序 保留最上面的前N个特征向量 将数据转换到上述N个特征向量构建的新空间中 


def pca(dataMat, topNfeat=9999999):           #如果没有第二个参数,就返回所有新的维度     meanVals = mean(dataMat, axis=0)     meanRemoved = dataMat - meanVals #remove mean     covMat = cov(meanRemoved, rowvar=0)     eigVals,eigVects = linalg.eig(mat(covMat))     eigValInd = argsort(eigVals)              #排序     eigValInd = eigValInd[:-(topNfeat+1):-1]  #去除多余成分     redEigVects = eigVects[:,eigValInd]       #逆序     lowDDataMat = meanRemoved * redEigVects   #把数据转换到新的维度     reconMat = (lowDDataMat * redEigVects.T) + meanVals     return lowDDataMat, reconMat 



降维后的各主成分的方差值: 

各成分方差值所占比重: 

转化成图表: 


的百分比,剩下的成分不过是在填补那不到的空缺而已,某种程度上讲他们是可以忽略的。






woreked by zzzzzr

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!