python机器学习:PCA数据降维

PCA算法作为一种无监督的学习算法,主要用于数据降维、有损数据压缩、特征抽取、数据可视化。
一、PCA算法流程

• 导入数据集X;
• 按列计算数据集X的均值Xmean,然后做差得到X1=X-Xmean;
• 对得到的新矩阵X1作协方差,得到conv;
• 计算协方差conv对应的特征值和特征向量;
• 然后对得到的特征值排序,得到k个最大的特征值,并求出其对应的k个特征向量,并将其作为列向量组成新的特征向量矩阵X2;
• 计算X1*X2得到经过降维的数据集。

二、python代码实现

import numpy as np
from sklearn import datasets

def zeroMean(X):        
    meanVal=np.mean(X,axis=0)#按列求均值,即求各个特征的均值  
    newData=X-meanVal  
    return newData,meanVal  

def pca(dataMat,n):  
    newData,meanVal=zeroMean(dataMat)  
    covMat=np.cov(dataMat,rowvar=0)    #求协方差矩阵,return ndarray;若rowvar非0,一列代表一个样本,为0,一行代表一个样本        
    eigVals,eigVects=np.linalg.eig(np.mat(covMat))#求特征值和特征向量,特征向量是按列放的,即一列代表一个特征向量  
    eigValIndice=np.argsort(eigVals)            #对特征值从小到大排序  
    n_eigVal
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值