PCA原理与用法

版权声明:未经博主允许不得转载 https://blog.csdn.net/qq_24954345/article/details/81464230

##PCA介绍与用法
主成分分析(Principal Component Analysis,PCA)是最常用的一种降维方法。

在PCA中,数据从原来的坐标系转换到了新的坐标系,新的坐标系的选择是由数据本身决定的。第一个新坐标轴选择是原始数据中方差最大的方向,第二个新坐标轴选择和第一个坐标轴相交并且具有最大方差的方向,以此类推。可以发现,大部分方差都包含在前面几个新坐标轴中。因此可以忽略余下的坐标轴,达到降维的目的。
通过数据集的协方差矩阵及特征值分析,我们可以求得这些方差最大的方向的主成分。

实现过程

  1. 去除平均值
  2. 计算协方差矩阵
  3. 计算协方差矩阵的特征值和特征向量
  4. 将特征值从大到小排序
  5. 保留最上面的N个特征向量
  6. 将数据转换到新的空间中

python实现:

    from numpy import*

	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))
		#sort, sort goes smallest to largest
    	eigValInd = argsort(eigVals) 
		#cut off unwanted dimensions             
    	eigValInd = eigValInd[:-(topNfeat+1):-1]   
		#reorganize eig vects largest to smallest
    	redEigVects = eigVects[:,eigValInd]       
		#transform data into new dimensions
    	lowDDataMat = meanRemoved * redEigVects		
    	reconMat = (lowDDataMat * redEigVects.T) + meanVals
    	return lowDDataMat, reconMat

猜你喜欢

转载自blog.csdn.net/qq_24954345/article/details/81464230