久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Numpy中怎么實現PCA

159次閱讀
沒有評論

共計 1919 個字符,預計需要花費 5 分鐘才能閱讀完成。

本篇內容主要講解“Numpy 中怎么實現 PCA”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓丸趣 TV 小編來帶大家學習“Numpy 中怎么實現 PCA”吧!

Numpy 中實現 PCA

from numpy import *

 fr = open(fileName)  stringArr = [line.strip().split(delim) for line in fr.readlines()]  datArr = [map(float,line) for line in stringArr]  return mat(datArr) def pca(dataMat, topNfeat=9999999):  meanVals = mean(dataMat, axis=0) # 計算列均值  print meanVals # [[ 9.06393644 9.09600218]]  print  ======  meanRemoved = dataMat - meanVals #remove mean #  每一列都減去均值  covMat = cov(meanRemoved, rowvar=0) #  計算新矩陣 (減去均值) 協方差  print covMat # [ [ 1.05198368 1.1246314 ]  [ 1.1246314 2.21166499]  ]    # 協方差  print  ======  eigVals,eigVects = linalg.eig(mat(covMat)) # 計算協方差矩陣的特征值和特征向量  print eigVals # [ 0.36651371 2.89713496]  print  ======  print eigVects # [ [-0.85389096 -0.52045195]  [ 0.52045195 -0.85389096]  ]   print  ======  eigValInd = argsort(eigVals) # 按照特征值從大到小排序。選擇 topN  eigValInd = eigValInd[:-(topNfeat+1):-1]   redEigVects = eigVects[:,eigValInd]   print redEigVects  print  ======  #[ [-0.52045195]  [-0.85389096]  ]  lowDDataMat = meanRemoved * redEigVects # N x 2 * 2 x 1 ==  N x 1    即把 N  x 2 的矩陣轉化成 N  x 1  的矩陣,維度降到 1    reconMat = (lowDDataMat * redEigVects.T) + meanVals  return lowDDataMat, reconMat

均值: mean(X) = (x0 + x1 + … + xn) / n

標準差:std = Math.sqrt([x0 – mean(x)]^2/(n-1),2)

方差:var=[x0 – mean(x)]^2/(n-1)

比如兩個集合[0,8,12,20]、[8,9,11,12] 均值都是 10. 但是兩個集合的差別很大。計算兩個標準差,前者是 8.3 和后者是 1.8.

顯示后者比較集中。標準差描述了數據的“散布度”。之所以除以 n - 1 而不是 n。是因為能使我們以較小的樣本更好的逼近總體的標準差。即“無偏估計”

為什么需要協方差?

標準差和方差一般是用來描述一維的數據。但是現實生活中,我們常常遇到含有二維數據的數據集。最簡單的是大家上學免不了的統計多個學科的考試成績。多維數據之間的關系。協方差就是這樣一種度量兩個隨機變量關系的統計量

var(X) = {Math.pow(xi-mean(X),2)}/(n-1) = {xi-mean(X)}{xi-mean(X)}/(n-1)

仿照方差的定義:

cov(X,Y)= {xi-mean(X)}{yi-mean(Y)}/(n-1)

來度量各個維度偏離其均值的程度。

協方差結果的意義:

如果是正值,則說明兩者是正相關,如果結果是負值,則說明兩者是負相關。如果是 0,表示兩者沒有關聯,相互獨立。

多維協方差:矩陣來表示

 cov(x,x) cov(x,y) cov(x,z)

C=cov(y,x) cov(y,y) cov(y,z)      === 可見協方差矩陣是一個對稱矩陣,而且對角線是各個維度的方差。是 3 *3

 cov(z,x) cov(z,y) cov(z,z)

到此,相信大家對“Numpy 中怎么實現 PCA”有了更深的了解,不妨來實際操作一番吧!這里是丸趣 TV 網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-16發表,共計1919字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 新余市| 阿勒泰市| 杨浦区| 梁山县| 红河县| 徐州市| 达拉特旗| 大荔县| 从化市| 灵宝市| 积石山| 海口市| 金寨县| 洞头县| 台南县| 石狮市| 五峰| 怀远县| 辰溪县| 英超| 闻喜县| 隆尧县| 株洲县| 新龙县| 伊吾县| 成都市| 翁源县| 四会市| 泰州市| 双辽市| 东平县| 崇义县| 固阳县| 江达县| 蒲江县| 九台市| 芒康县| 平顶山市| 孝义市| 广东省| 米脂县|