日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

PCA数据降维

發布時間:2025/7/14 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PCA数据降维 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Principal Component Analysis

算法優缺點:

  • 優點:降低數據復雜性,識別最重要的多個特征
  • 缺點:不一定需要,且可能損失有用的信息
  • 適用數據類型:數值型數據

算法思想:

降維的好處:

  • 使得數據集更易使用
  • 降低很多算法計算開銷
  • 去除噪聲
  • 使得結果易懂

主成分分析(principal component analysis,PCA)的思想是將數據轉換到新的坐標系,這個坐標系的選擇是由數據本身決定的,第一維是原始數據中方差最大的方向,第二個是與第一維正交且方差最大的,一直重復。。。
主成分分析中使用數據集的協方差矩陣和特征值分析來獲得。

函數:

pca(dataMat, topNfeat=999999)
由于主成分分析基本上可以說是算個矩陣的問題,而numpy在這方面又幫我們做好了,所以函數很簡單,就是先去平均值,然后計算協方差矩陣和其特征值,最后選出最大的topNfeat個,最后用這些特征向量將源數據轉到新的空間。當然使用的時候有兩種方式,一種是跟限定個數,另一種則是通過數據壓縮比來完成的。

  • 1 #coding=utf-8 2 from numpy import * 3 def loadDataSet(filename, delim='\t'): 4 fr = open(filename) 5 stringArr = [line.strip().split(delim) for line in fr.readlines()] 6 datArr = [map(float,line) for line in stringArr] 7 return mat(datArr) 8 9 def pca(dataMat, topNfeat=999999): 10 meanVals = mean(dataMat, axis=0) 11 meanRemoved = dataMat - meanVals 12 covMat = cov(meanRemoved, rowvar=0) 13 eigVals, eigVects = linalg.eig(mat(covMat)) 14 eigValInd = argsort(eigVals) 15 eigValInd = eigValInd[:-(topNfeat+1):-1] 16 redEigVects = eigVects[:,eigValInd] 17 lowDDataMat = meanRemoved * redEigVects 18 reconMat = (lowDDataMat * redEigVects.T) + meanVals 19 return lowDDataMat, reconMat 20 21 def main(): 22 dataMat = loadDataSet('testSet.txt') 23 lowDMat, reconMat = pca(dataMat, 1) 24 print shape(lowDMat) 25 26 if __name__ == '__main__': 27 main()

    ?

  • 機器學習筆記索引



    來自為知筆記(Wiz)



    轉載于:https://www.cnblogs.com/MrLJC/p/4156589.html

    總結

    以上是生活随笔為你收集整理的PCA数据降维的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。