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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

PCA算法分析

發布時間:2024/1/1 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PCA算法分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這個是在研一的概率論課上做的實驗報告,PCA算法分析,對降維進行了一定程度的了解,并用PCA實現降維,具體語言是Python。

第一章 概率論與隨機過程在降維中的應用——PCA算法分析

1.1 PCA背景

1.1.1降維的意義

在大數據集上進行復雜的分析和挖掘需要很長的時間,數據降維產生更小但保持數據完整性的新數據集,在降維后的數據集上進行分析和挖掘將更有效率

數據降維的意義:

1)降低無效、錯誤的數據對建模的影響,提高建模的準確性。

2)少量且具有代表性的數據將大幅縮減數據挖掘所需要的時間。

3)降低存儲數據的成本。

1.1.2降維的作用

  • 降低時間復雜度和空間復雜度
  • 節省了提取不必要特征的開銷
  • 去掉數據集中夾雜的噪聲
  • 較簡單的模型在小數據集上有更強的魯棒性
  • 當數據能有較少的特征進行解釋,我們可以更好的解釋數據,使得我們可以提取知識。
  • 實現數據可視化
  • 1.1.3降維的方法

    降維方法分為線性和非線性降維,非線性降維又分為基于核函數和基于特征值的方法。如圖1-1所示。

    1、線性降維方法:PCA 、ICA LDA、LFA、LPP(LE的線性表示)

    2、非線性降維方法:

    (1)基于核函數的非線性降維方法:KPCA 、KICA、KDA

    (2)基于特征值的非線性降維方法(流型學習):ISOMAP、LLE、LE、LPP、LTSA、MVU

    圖1-1 降維方法

    1.2 PCA原理

    主成分分析(Principal Component Analysis,PCA):主成分分析是一種用于連續屬性的數據降維方法,它構造了原始數據的一個正交變換,新空間的基地去除了原始空間基底下數據的相關性,只需要使用少數新變量就能夠解釋原始數據中大部分變量。在應用中通常是選出比原始變量個數少,能夠解釋大部分數據中的變量的幾個新變量,即所謂的主成分,來代替原始變量進行建模。通過線性變化,將原始數據集變化為一組各維度線性無關的表示。

    PCA把原先的n個特征用數目更少的n’個特征取代,新特征是舊特征的線性組合,這些線性組合最大化樣本方差,盡量使新的n’個特征互不相關。

    例如將三維空間的物體降維至二維空間,如圖1-2所示。

    圖1-2 降維示例

    1.3 PCA算法流程

    1.3.1 PCA推導

    首先將原特征空間的樣本點表示為: xi? ,并認為其已經中心化。樣本空間中的所有向量可構成矩陣X。

    將降維后的特征空間中的投影點表示為:WTxi ,W=(w1, w2 , …. , wd),其中W為投影變換后的新的坐標系,wi是標準正交基向量。

    則投影后樣本點的方差表示為:1ni=1n(WTxi?)2????????????????? ??(1)

    公式(1)可將矩陣的乘法展開寫成: 1ni=1n(WTxi)(WTxi)T????????? (2) ??

    ?去掉括號為:?1ni=1nWTxixiTW????????????????????? ??????(3)

    由于W與加和符號無關,故提出來:?1nWT?(i=1nxixiT)W? ?????????(4) ????????可以將公式(4)寫成所有樣本點組成的矩陣相乘:?1nWT?(XXT)W??? ??(5)

    建立目標函數: J(W)=WT?XXTW ,添加W為單位向量的約束條件:WTW=1

    對方差進行拉格朗日乘子法:lw=WT?XXTW-λ(WTW-1),并對w求偏導:???l(w)?w=0??è? XXTW =λW

    對協方差矩陣XXT進行特征值分解,最大特征值λ1對應方差,特征向量w1為第一主成分的方向。

    1.3.2 PCA算法流程

    PCA

    輸入:n維的樣本集D={x1 , x2 , x3 ,…, xm};

    輸出:降到n’ 維的樣本集D’ ;

    1:? 對所有樣本進行中心化:xi←xi-1mi=1mxi?;

    2:? 計算所有樣本的協方差矩陣 XXT ?;

    3: ?對協方差矩陣XXT 做特征值分解 ;

    4: ?取出最大的n’ 特征值對應的特征向量 w1 ,w2 ,…, w n’ ?將其標準化,組成新的特征向量矩陣W ;

    5:? 對于每一個樣本xi ,轉化為新樣本 zi =WTxi ;?

    6:? Return D’ ={z1 , z2 , z3 ,…, zm} ;?

    1.4 PCA應用實例

    1.4.1 普通數據降維

    ?????? 原樣本為二維空間上的數據,如圖1-3所示。

    圖1-3 二維空間的樣本數據

    實驗環境為:Win10,RAM大小:8G ,CPU:i5-7200U,代碼語言為Python,運行環境:CMD控制臺窗口。

    實驗代碼如下:

    import numpy as npimport matplotlib.pyplot as pltdata=np.array([[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]])plt.plot(data[:,0],data[:,1],'*')meandata=np.mean(data,axis=0)????????? #計算每一列的平均值data=data-meandata???????????????????? #均值歸一化covmat=np.cov(data.transpose())??????? #求協方差矩陣eigVals,eigVectors=np.linalg.eig(covmat) #求解特征值和特征向量pca_mat=eigVectors[:,-1]??????????????? #選擇第一個特征向量pca_data=np.dot(data,pca_mat)plt.show()print(pca_data)

    降維后的結果為一維數據,[-0.82797019? 1.77758033 -0.99219749 -0.27421042 -1.67580142?? -0.9129491? 0.09910944? 1.14457216? 0.43804614? 1.22382056],結果如圖1-4所示。

    圖1-4 運行結果

    ?

    總結

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

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