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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

PCA 主成分分析 用Excel一步步演算过程详解

發布時間:2024/9/27 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PCA 主成分分析 用Excel一步步演算过程详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?PCA Excel演算

1 聲明

本文的數據來自網絡,部分代碼也有所參照,這里做了注釋和延伸,旨在技術交流,如有冒犯之處請聯系博主及時處理。

2 PCA簡介

主成分分析(Principal Components Analysis),簡稱PCA,是一種數據降維技術,用于數據預處理。在PCA中,數據從原來的坐標系轉化到新的坐標系中。通常第一個新坐標軸選擇的是原始數據方差最大的方向,第二個坐標軸是與第一個坐標軸正交且具有最大方差的方向,也即是第二個選取的方向應該和第一個方向具有很弱的相關性。

3 PCA計算過程

假設有如下的二維數據,分別是x、y來演示PCA的計算過程(這里y并不是因變量)。

Step 1:計算連續變量的x、y的均值

x

y

2.5

2.4

0.5

0.7

2.2

2.9

1.9

2.2

3.1

3.0

2.3

2.7

2.0

1.6

1.0

1.1

1.5

1.6

1.1

0.9

則可以通過excel的AVERAGE函數,如AVERAGE(A3:A12)得到x列的均值。

Step 2:計算離差(隨機變量與其均值的差,去中心化)

注:1 這里以x和y的最后一個元素為例,則離差分別為A12-A13=1.1-1.81=-0.71和B12-B13=0.9-1.91=-1.01.

? ? ? ?2 這里的D和E列是標準化后的數據記為dataAdjust,則其為一個10*2的矩陣。

Step 3:計算x和y的協方差

兩變量協方差的公式是

所以這里即轉換成:

  • x、y對應的離差相乘再求和
  • 將1)式除以n-1
  • 這里以最后一列的0.72為例 ,D12*E12=(-0.71)*(-1.01)=0.72

    Step 4:構建協方差矩陣

    兩變量協方差矩陣的一般形式如下:

    這里的cov(x,x)即是x的方差,cov(x,y)見Step3的結果,即0.615444444。。

    其中方差的公式:

    則得到協方差矩陣如下:

    以cov(x,x) x的方差為例,VAR(A3:A12)= 0.616555556

    Step 5: 計算特征值并按大小排序

    ??(這里設k為特征值)由上式得,

    (0.616555556-k)*(0.716555556-k)-0.615444444*0.615444444 = 0

    整理后得出

    k*k-(0.716555556+0.616555556)*k+0.716555556*0.616555556-0.615444444*0.615444444

    則按照一元二次方程的標準形式:

    a=1

    b=-1.333111112

    c= 0.063024445584

    這里令d=? ?則,d=1.525087455

    用excel解出k的兩個根。

    即λ1=0.0490834,λ2= 1.284027712

    按照特征值大小排序,這里因為是兩個,選擇大的λ2。

    Step 6: 計算特征向量

    將得到特征值分別帶入特征方程中,最終得向量分量間的關系為a1=0.92*a2,再通過單位化(a1*a1+a2*a2=1)最終得到特征向量。(非嚴格演算)

    最終的特征向量為:(-0.6778734, -0.73517866)T

    或者用python里的scipy求解:

    import numpy as np np.set_printoptions(precision=8) import numpy as np from scipy import linalg A=np.array([[0.616555556,0.615444444],[0.615444444,0.716555556]]) evalue,evector=linalg.eig(A) print(evalue) print(evector)

    Step 6:得到將維的矩陣

    用step2里的dataAdjust矩陣(10*2)乘以特征向量(2*1)最終得到10*1的矩陣。

    4 總結

    PCA的處理步驟如下:

  • 對樣本進行去中心化操作。
  • 計算樣本矩陣的協方差矩陣
  • 對協方差矩陣進行特征分解,計算特征值和特征向量
  • 特征值從大到小排序
  • 保留最上面k個特征向量
  • 將數據轉換到k個向量構件的新空間中
  • n維矩陣*k維特征向量=k維矩陣
  • 總結

    以上是生活随笔為你收集整理的PCA 主成分分析 用Excel一步步演算过程详解的全部內容,希望文章能夠幫你解決所遇到的問題。

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