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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Matlab中特征降维主成分分析(PCA)使用方法(整套流程)

發(fā)布時間:2025/3/15 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Matlab中特征降维主成分分析(PCA)使用方法(整套流程) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1. PCA簡介:

PCA(Principal Component Analysis)主成分分析方法是一種常見的數(shù)據(jù)降維方法。數(shù)據(jù)維度過高可能會使得模型效果不佳。PCA主要原理是將高維原數(shù)據(jù)通過一個轉(zhuǎn)換矩陣,映射到另一組低維坐標系下,從而實現(xiàn)數(shù)據(jù)降維。

2. matlab中pca()函數(shù)

coeff = pca(X) coeff = pca(X,Name,Value) [coeff,score,latent] = pca(___) [coeff,score,latent,tsquared] = pca(___) [coeff,score,latent,tsquared,explained,mu] = pca(___)

常用形式:

[coeff,score,latent,tsquared,explained,mu] = pca(___)

常用參數(shù)為coeff,score,latent

  • coeff:主成分系數(shù)矩陣,也叫做轉(zhuǎn)換矩陣,是理論中的原數(shù)據(jù)X對應(yīng)的協(xié)方差矩陣的特征向量組成的矩陣
  • score:原數(shù)據(jù)利用初始coeff轉(zhuǎn)換后的新數(shù)據(jù)矩陣,但這個不是我們想要的最終轉(zhuǎn)換數(shù)據(jù),因為后續(xù)降維操作會改變coeff
  • latent:是理論中的原數(shù)據(jù)X對應(yīng)的協(xié)方差矩陣的特征值,是一個向量,并且經(jīng)過排序(貢獻越大越靠前)

3. PCA完整使用方法

(1). 導(dǎo)入實驗數(shù)據(jù),劃分出訓練集train_data和測試集test_data
(2). 基于訓練集用pca()得到需要參數(shù)
[coeff,score,latent,tsquared,explained,mu] = pca(train_data)
(3). 計算主成分累計貢獻率,運行下面的代碼后會出現(xiàn)一個向量,從小到大,例如輸出為[0.7,0.95,0.98,1](數(shù)據(jù)特征有四維),0.7就代表取第一主成分貢獻率70%,0.95就代表取第一主成分和第二主成分就已經(jīng)得到累計貢獻率95%,相當于只用兩個主成分就攬括了原數(shù)據(jù)95%的信息。若只取前兩個主成分,其他的丟棄,則模型也能夠有著不錯的效果,從而將四維數(shù)據(jù)降到了二維。一般要求累計貢獻率大于等于95%就夠了
cumsum(latent)/sum(latent)%累積貢獻值
(4). 基于累計貢獻值確定所降到的維度數(shù)量(設(shè)為p)后,取coeff的前p列作為降維轉(zhuǎn)換矩陣tran_matrix(coeff也是根據(jù)第幾主成分貢獻從大到小排列的)
tran_matrix = coeff(:,1:p)
(5). 把訓練集每列的值減去樣本對應(yīng)列的均值,得到train_data0,再將train_data0與轉(zhuǎn)換矩陣tran_matrix相乘,得到將原始訓練集降維后的新訓練數(shù)據(jù)集
train_data0 = bsxfun(@minus,train_data,mean(train_data,1)); low_train_data = train_data0 * tran_matrix;
(6). 將測試集每列的值減去訓練集對應(yīng)列的均值,得到test_data0,再將test_data0與轉(zhuǎn)換矩陣tran_matrix相乘,得到將原始測試集降維后的新測試數(shù)據(jù)集
test_data0 = bsxfun(@minus,test,mean(x,1)); low_test_data = test_data0 * tran_matrix;

總結(jié)

以上是生活随笔為你收集整理的Matlab中特征降维主成分分析(PCA)使用方法(整套流程)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。