机器学习笔记:主成分分析
(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