python实现pca主成分分析,pca计算过程

  python实现pca主成分分析,pca计算过程

  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(文件名,delim=\t):#此处的\t 表示不同变量间的分隔符,t表示标签键键入的空格

  fr=打开(文件名)

  string ar=[line。strip().行infr的分割(delim)。readlines()]

  dataArr=[list(map(float,line))forlineinstringArr]

  returnnp.mat(dataArr)

  #定义极冠吸收分析函数

  defpca(dataset,topNfeat=99999):#topNfeat特征值数目,通常不用设置,因为后续要进行可视化分析

  meanVals=np.mean(数据集,轴=0)#求均值

  meanRemoved=dataset-meanVals#预处理

  covMat=np.cov(meanRemoved,rowvar=0)#求解输入数据协方差矩阵

  EIG向量=NP。利纳格。EIG(NP。垫子(盖垫))#求解特征值,特征向量

  eigVaInd=np.argsort(eigVals)#对特征值进行排序处理,默认为升序

  EIG瓦因德=EIG瓦因德[-1:-(topn专长):-1]#根据指定数目进行逆序处理

  redeigwects=EIG矢量[:eigVaInd]#选取对应特征向量

  低数据mat=移除平均值*重新设计次数数据降维X*P

  recontMat=(低位数据mat * redeigwects .t)含义#c处理进行了数据重构,非必须选项

  returnlowDataMat,recontMat,eigVals#返回数据

  #定义特值值绘制函数

  defplotEig(dataset,numFeat=20):

  mpl。RC params[ font。sans-serif ]=[ times new Roman ]

  sumData=np.zeros((1,numFeat))

  数据集=数据集/总和(数据集)

  foriinrange(numFeat):

  sumData[0,i]=sum(数据集[0:i])

  X=np.linspace(1,numFeat,numFeat)

  图=plt .图()

  ax=fig.add_subplot(211)

  ax.plot(X,(sumData*100).t, r-)

  mpl。RC params[ font。sans-serif ]=[ sim hei ]

  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

  图=plt .图()

  ax=fig.add_subplot(111)

  ax . scatter(origin data[:0]).展平()。A[0],原始数据[:1].展平()。A[0],c=blue,marker=^,s=90)

  ax.scatter(recData[:0]).展平()。A[0],recData[:1].展平()。A[0],c=red ,marker=o ,s=90)

  plt.show()以上就是大蟒中污染控制局(污染控制机构)的处理过程,希望对大家有所帮助。更多计算机编程语言学习指路:python基础教程

  本文教程操作环境:windows7系统、Python 3.9.1、戴尔自交第三代电脑。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: