首页IT科技pcan python(python中PCA的处理过程)

pcan python(python中PCA的处理过程)

时间2025-06-14 15:04:24分类IT科技浏览5682
导读:1、输入矩阵归一化处理。...

1              、输入矩阵归一化处理              。

2                    、计算样本协方差矩阵                    。

3       、求解协方差矩阵指定的特征值对应特征向量       。

4              、确定转换矩阵              ,求解降维数据              。

实例

#/usr/nom/envpython #_*_coding:utf-8_*_ #@Time:2021/9/310:04 #@Author:Abigfish #@FileName:maindemo13.py #@Software:PyCharm importmatplotlib.pyplotasplt importnumpyasnp frompylabimport* #首先导入数据                     ,此部分为从存储列表或单元中读取分析数据 defloadDataSet(filename,delim=\t):#此处的\t表示不同变量间的分隔符      ,t表示tab键键入的空格 fr=open(filename) stringArr=[line.strip().split(delim)forlineinfr.readlines()] dataArr=[list(map(float,line))forlineinstringArr] returnnp.mat(dataArr) #定义pca分析函数 defpca(dataset,topNfeat=99999):#topNfeat特征值数目       ,通常不用设置                     ,因为后续要进行可视化分析 meanVals=np.mean(dataset,axis=0)#求均值 meanRemoved=dataset-meanVals#预处理 covMat=np.cov(meanRemoved,rowvar=0)#求解输入数据协方差矩阵 eigVals,eigVects=np.linalg.eig(np.mat(covMat))#求解特征值             ,特征向量 eigVaInd=np.argsort(eigVals)#对特征值进行排序处理       ,默认为升序 eigVaInd=eigVaInd[-1:-(topNfeat):-1]#根据指定数目进行逆序处理 redEigVects=eigVects[:,eigVaInd]#选取对应特征向量 lowDataMat=meanRemoved*redEigVects#数据降维X*P recontMat=(lowDataMat*redEigVects.T)+meanVals#c处理进行了数据重构                     ,非必须选项 returnlowDataMat,recontMat,eigVals#返回数据 #定义特值值绘制函数 defplotEig(dataset,numFeat=20): mpl.rcParams[font.sans-serif]=[TimesNewRoman] sumData=np.zeros((1,numFeat)) dataset=dataset/sum(dataset) foriinrange(numFeat): sumData[0,i]=sum(dataset[0:i]) X=np.linspace(1,numFeat,numFeat) fig=plt.figure() ax=fig.add_subplot(211) ax.plot(X,(sumData*100).T,r-+) mpl.rcParams[font.sans-serif]=[SimHei] plt.ylabel(累计方差百分比) ax2=fig.add_subplot(212) ax2.plot(X.T,(dataset[0:numFeat].T)*100,b-*) plt.xlabel(主成分数) plt.ylabel(方差百分比) plt.show() #定义原始数据及第一主成分绘制函数 defplotData(OrigData,recData): importmatplotlib.pyplotasplt fig=plt.figure() ax=fig.add_subplot(111) ax.scatter(OrigData[:,0].flatten().A[0],OrigData[:,1].flatten().A[0],c=blue,marker=^,s=90) ax.scatter(recData[:,0].flatten().A[0],recData[:,1].flatten().A[0],c=red,marker=o,s=90) plt.show()

以上就是python中PCA的处理过程             ,希望对大家有所帮助                    。更多Python学习指路:Python基础教程

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
帝国cms如何卸载应用(帝国cms如何卸载) 网站排名的影响因素(网站移动端排名突然下降)