国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

主成分分析(PCA)步驟及代碼

這篇具有很好參考價值的文章主要介紹了主成分分析(PCA)步驟及代碼。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

主成成分分析


前言

??主成分分析(Principal Component Analysis,PCA), 簡稱PCA,是一種統(tǒng)計方法。過正交變換將一組可能存在相關(guān)性的變量轉(zhuǎn)換為一組線性不相關(guān)的變量,轉(zhuǎn)換后的這組變量叫主成分。主成分分析是我們在數(shù)學(xué)建模的過程中最為常見的線性降維方式,在比賽中常常會用在數(shù)據(jù)指標(biāo)過多的處理,把高維度數(shù)據(jù)處理成低維度數(shù)據(jù),方便后續(xù)建模。說人話就是將多個數(shù)據(jù)指標(biāo)降維到較少的數(shù)據(jù)指標(biāo)。


一、主成分分析的步驟

對n個樣本,p個指標(biāo)組成的Xnp的樣本矩陣

1、對指標(biāo)中心化

中心化也就是把數(shù)據(jù)的均值變?yōu)榱?br> x i j = x i j ? 1 n ∑ j = 1 n x i j (1) x_{ij}=x_{ij}-\frac{1}{n}\sum_{j=1}^n x_{ij} \tag{1} xij?=xij??n1?j=1n?xij?(1)
數(shù)據(jù)是正態(tài)分布也可以是標(biāo)準(zhǔn)化過程。
x i j = X ? X  ̄ σ (2) x_{ij}= \frac{X-\overline{X}}{\sigma} \tag{2} xij?=σX?X?(2)

2、計算協(xié)方差矩陣C

C = 1 n X ′ T X ′ (3) C= \frac{1}{n}X'^{T}X' \tag{3} C=n1?XTX(3) C i j = c o v ( x i , x j ) = E ( ( x i ? μ i ) ( x j ? μ j ) ) (4) C_{ij}= cov(x_{i},x_{j})=E((x_{i}-\mu_{i})(x_{j}-\mu_{j})) \tag{4} Cij?=cov(xi?,xj?)=E((xi??μi?)(xj??μj?))(4)
其中x為指標(biāo)列,μ為指標(biāo)均值

3、計算協(xié)方差矩陣的特征值和特征向量

C a = λ a (5) Ca=\lambda a \tag{5} Ca=λa(5)
λ為C的特征值,a為C的對應(yīng)于特征值λ的特征向量,具體推導(dǎo)不會的可以參考線性代數(shù)。

4、計算主成分貢獻(xiàn)率和累計貢獻(xiàn)率

將特征值由大到小排列,對應(yīng)的特征向量按行排列成矩陣a
P i = λ i ∑ λ i (6) P_{i}=\frac {\lambda_{i}}{\sum \lambda_{i}}\tag{6} Pi?=λi?λi??(6)
P i ′ = ∑ k = 1 i P k (7) P'_{i}=\sum_{k=1}^i P_{k}\tag{7} Pi?=k=1i?Pk?(7)
Pi為貢獻(xiàn)率,P’i為累計貢獻(xiàn)率,我們將Pi視為信息的保留部分百分比

5、寫出主成分

一般取累計貢獻(xiàn)率P’i超過80%的特征值對應(yīng)的m個主成分
Y = a X (8) Y=aX\tag{8} Y=aX(8)
第i個主成分: F i = a 1 i X 1 + a 2 i X 2 + … + a p i X p (9) F_{i}=a_{1i}X_{1}+a_{2i}X_{2}+…+a_{pi}X_{p}\tag{9} Fi?=a1i?X1?+a2i?X2?++api?Xp?(9)

6、解釋主成分

對于某個主成分而言,指標(biāo)的系數(shù)越大,代表該指標(biāo)對主成分的影響越大,我們對這個主成分的解釋應(yīng)賦予指標(biāo)更大的權(quán)重。

二、代碼程序

matlab代碼如下:

clear;clc
x =  xlsread('文件路徑\xxx.xlsx');  %導(dǎo)入excel數(shù)據(jù)
[n,p] = size(x);  % n是樣本個數(shù),p是指標(biāo)個數(shù)
X=zscore(x); %matlab內(nèi)置的標(biāo)準(zhǔn)化函數(shù)
C = cov(X); %求協(xié)方差矩陣
[V,lambda] = eig(C);  % V 特征向量矩陣,lamda為特征值構(gòu)成的對角矩陣
[lambda, ind] = sort(diag(lambda), 'descend'); %排序
lambda=lambda./sum(lambda); %求貢獻(xiàn)率
lambda=cumsum(lambda); %累計貢獻(xiàn)率
k=find(lambda>0.9); %累計貢獻(xiàn)率超過0.9
y=x*V(:,ind(1:k(1))); %y為主成分降維后的結(jié)果

python代碼如下:

## pca特征降維
# 導(dǎo)入相關(guān)模塊
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
from numpy.linalg import eig
from sklearn.datasets import load_iris

iris = load_iris() # 導(dǎo)入矩陣,行是樣本,列是指標(biāo)
#X = np.array([[5.1, 3.5, 1.4, 0.2],
#                [4.9, 3, 1.4, 0.2]])
#自己導(dǎo)入矩陣數(shù)據(jù)可以用上面的注釋代碼,然后把X = iris.data 刪掉即可
X = iris.data
# Standardize by remove average通過去除平均值進行標(biāo)準(zhǔn)化
X = X - X.mean(axis=0)

# Calculate covariance matrix:計算協(xié)方差矩陣:
X_cov = np.cov(X.T, ddof=0)

# Calculate  eigenvalues and eigenvectors of covariance matrix
# 計算協(xié)方差矩陣的特征值和特征向量
eigenvalues, eigenvectors = eig(X_cov)
pi = eigenvalues/np.sum(eigenvalues) #計算貢獻(xiàn)率
p = np.cumsum(pi) #計算累計貢獻(xiàn)率

k=np.min(np.argwhere(p > 0.95))+1 #返回達(dá)到累計貢獻(xiàn)率的閾值的下標(biāo)

# top k large eigenvectors選取前k個特征向量
klarge_index = eigenvalues.argsort()[-k:][::-1]
k_eigenvectors = eigenvectors[klarge_index]

# X和k個特征向量進行點乘
X_pca = np.dot(X, k_eigenvectors.T)
print(X_pca) #輸出主成分結(jié)果

兩種編程語言都是一樣的,看自己熟練哪一種就用哪種。


總結(jié)`

主成分分析有沒有不用代碼的操作?
??是有的,spsspro、MPai數(shù)據(jù)科學(xué)平臺等都有內(nèi)置的主成分分析的操作。

如何解釋主成分?
??在實際過程操作中,我們知道了第i個主成分的構(gòu)成,那么可以根據(jù)相對應(yīng)的系數(shù)進行解釋,如:X1代表食品支出,X2代表住房支出,X3代表娛樂支出,X4代表醫(yī)療支出,Y1為第1個主成分,構(gòu)成如下:
F i = 0.91 X 1 + 0.83 X 2 + 0.04 X 2 + 0.76 X 4 (10) F_{i}=0.91X_{1}+0.83X_{2}+0.04X_{2}+0.76X_{4}\tag{10} Fi?=0.91X1?+0.83X2?+0.04X2?+0.76X4?(10)
??可以明顯觀察到,X1、X2、X4前面的系數(shù)較高,對于主成分的影響較大,而X3前面的系數(shù)較高,對于主成分的影響較小,那么我們可以將第一主成分解釋為:家庭必要支出
注:一旦主成分無法解釋,那么這次主成分分析就是失敗的,可以考慮用因子分析

主成分分析能否用于綜合評價?
??先說結(jié)論,主成分分析雖然有主成分得分,但是我們一般是不會將主成分分析用于綜合得分評價的。因為主成分是會損失部分原始數(shù)據(jù)的信息的,而且如果指標(biāo)是極小型的,在其中我們沒有對數(shù)據(jù)指標(biāo)進行正向化的過程,那么得分結(jié)果是不準(zhǔn)確的。
??主成分得分的原理是從幾十個指標(biāo)中分解出幾個主元,相當(dāng)于是全新的指標(biāo),并且有這幾個主元的貢獻(xiàn)率,貢獻(xiàn)率衡量的是這個主元能夠反映整體多少信息量(其他指標(biāo)映射到主元的距離方差,方差越大,說明能反映的信息量越多),是個相對性的值,歸一化后可以當(dāng)做權(quán)重,權(quán)重與主元相乘可得到不同樣本相對的數(shù)值。文章來源地址http://www.zghlxwxcb.cn/news/detail-400780.html

到了這里,關(guān)于主成分分析(PCA)步驟及代碼的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【語音識別】基于主成分分析PCA結(jié)合最近鄰KNN實現(xiàn)聲音自動分類附matlab代碼

    【語音識別】基于主成分分析PCA結(jié)合最近鄰KNN實現(xiàn)聲音自動分類附matlab代碼

    ??作者簡介:熱愛科研的Matlab仿真開發(fā)者,修心和技術(shù)同步精進,代碼獲取、論文復(fù)現(xiàn)及科研仿真合作可私信。 ??個人主頁:Matlab科研工作室 ??個人信條:格物致知。 更多Matlab完整代碼及仿真定制內(nèi)容點擊?? 智能優(yōu)化算法 ? ? ? 神經(jīng)網(wǎng)絡(luò)預(yù)測 ? ? ? 雷達(dá)通信? ? ? ?無

    2024年04月27日
    瀏覽(26)
  • PCA分析(主成分分析)--結(jié)果解讀

    PCA分析(主成分分析)--結(jié)果解讀

    主成分分析( PCA )是一個很好的工具,可以用來降低特征空間的維數(shù)。 PCA 的顯著優(yōu)點是它能產(chǎn)生不相關(guān)的特征,并能提高模型的性能。 PCA 用于減少用于訓(xùn)練模型的特征維度數(shù)量,它通過從多個特征構(gòu)造所謂的主成分( PC )來實現(xiàn)這一點。 PC 的構(gòu)造方式使得 PC1 方向在最大

    2024年02月03日
    瀏覽(26)
  • PCA主成分分析

    PCA主成分分析

    目前圖像特征的提取主要有兩種方法:傳統(tǒng)圖像特征提取方法 和 深度學(xué)習(xí)方法。 傳統(tǒng)的特征提取方法:基于圖像本身的特征進行提?。≒CA); 深度學(xué)習(xí)方法:基于樣本自動訓(xùn)練出區(qū)分圖像的特征分類器; 特征選擇(feature selection)和特征提取(Feature extraction)都屬于 降維

    2024年02月08日
    瀏覽(28)
  • 主成分分析(PCA)詳解

    主成分分析(PCA)詳解

    主成分分析(PCA)是一種比較基礎(chǔ)的數(shù)據(jù)降維方法,也是多元統(tǒng)計中的重要部分,在數(shù)據(jù)分析、機器學(xué)習(xí)等方面具有廣泛應(yīng)用。主成分分析目的是用較少的變量來代替原來較多的變量,并可以反映原來多個變量的大部分信息。 對于一個含有n個數(shù)據(jù),變量的個數(shù)為p的一個樣本,

    2024年01月17日
    瀏覽(28)
  • 主成分分析(PCA)原理詳解

    主成分分析(PCA)原理詳解

    在許多領(lǐng)域的研究與應(yīng)用中,通常需要對含有多個變量的數(shù)據(jù)進行觀測,收集大量數(shù)據(jù)后進行分析尋找規(guī)律。多變量大數(shù)據(jù)集無疑會為研究和應(yīng)用提供豐富的信息,但是也在一定程度上增加了數(shù)據(jù)采集的工作量。更重要的是在很多情形下,許多變量之間可能存在相關(guān)性,從而

    2024年02月07日
    瀏覽(24)
  • 主成分分析(PCA)實例講解

    主成分分析(PCA)實例講解

    ????主成分分析(PCA)是一種降維算法,PCA的主要思想是將n維特征映射到k維上,這k維是全新的正交特征也被稱為主成分(特征之間互相獨立),是在原有n維特征的基礎(chǔ)上重新構(gòu)造出來的k維特征(k=n),會帶來部分信息損失。 ????一般來說,當(dāng)研究的問題涉及到多

    2024年02月09日
    瀏覽(19)
  • 【主成分分析(PCA)- 鳶尾花】

    在現(xiàn)代數(shù)據(jù)科學(xué)中,維度災(zāi)難常常是數(shù)據(jù)處理與分析的一大難題。主成分分析(PCA)是一種廣泛使用的數(shù)據(jù)降維技術(shù),它通過將原始數(shù)據(jù)轉(zhuǎn)換為新的低維空間,保留最重要的信息,從而使得數(shù)據(jù)分析更加高效。本博客將詳細(xì)介紹PCA的原理、應(yīng)用場景以及如何使用Python中的skl

    2024年02月15日
    瀏覽(31)
  • 主成分分析(PCA)——矩陣角度推導(dǎo)

    主成分分析(PCA)——矩陣角度推導(dǎo)

    最近機器學(xué)習(xí)課上正式講了主成分分析,只是老師說的很快,我并沒有完全理解。隨后我搜了很多關(guān)于這方面的講解來進行理解,僅CSDN上就有很多講的很好的文章,從協(xié)方差矩陣角度進行說明,基本上我也都理解了。但另一方面我發(fā)現(xiàn)可以結(jié)合我最近學(xué)的矩陣分析,從純矩陣

    2024年03月15日
    瀏覽(19)
  • 【數(shù)據(jù)處理方法】主成分分析(PCA)原理分析

    【數(shù)據(jù)處理方法】主成分分析(PCA)原理分析

    ????????筆者最近在學(xué)習(xí)的過程需要使用一些數(shù)據(jù)分析和處理的方法,而PCA就是其中常用的一種手段。但在自學(xué)的過程中,由于筆者水平有限,對一些博客中的公式不是能很好理解(數(shù)學(xué)不好的辛酸???),導(dǎo)致總是對整個方法的原理沒有一個透徹的理解。后來在視頻用

    2023年04月09日
    瀏覽(24)
  • 主成分分析(PCA)及python原理實現(xiàn)

    主成分分析(PCA)及python原理實現(xiàn)

    該定義來自于秒懂百科: ?????????PCA(principal components analysis)即主成分分析技術(shù),又稱主分量分析,旨在利用降維的思想,把多指標(biāo)轉(zhuǎn)化為少數(shù)幾個綜合指標(biāo)。 ????????在統(tǒng)計學(xué)中,主成分分析PCA是一種簡化數(shù)據(jù)集的技術(shù)。它是一個線性變換。這個變換把數(shù)據(jù)變換

    2024年02月07日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包