matlab中利用princomp实现PCA降维
生活随笔
收集整理的這篇文章主要介紹了
matlab中利用princomp实现PCA降维
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
matlab中利用princomp實現PCA降維
在matlab中有函數princomp可以實現數據的降維,本文主要說明該函數的用法。
PCA的作用:
PCA(主成分分析法),主要用來對數據進行降維,比如在機器學習中,我們提取了大量的特征,并針對這些特征進行分類,這些特征的維度很高,在利用SVM進行分類的時候會消耗大量的時間,PCA降維是將這些特征映射到另一個空間里面,并且去除數據冗余。
假設有樣本m個。每個樣本提取n維特征,構成一個m*n維的矩陣X,降維之后的矩陣為Y, 在降維的過程中需要滿足以下兩個條件:
(a) Y的維度小于X的維度;
(b) Y的各個維度之間的差異越大越好(差異越大,表示數據的冗余越小,這也是可以降維的基本條件);
PCA原理
- 首先衡量X(m*n)中各維特征之間的相關性,通過計算X中各列之間的協方差構成協方差矩陣D(n*n)=X'X,其中X'是X的轉置,注意這里的X是零均值化之后的X,為了實現數據的降維,我們希望數據之間的相關性越小越好,也就是去掉那些相關性較高的冗余數據,換個角度也就是說希望協方差矩陣D是一個對角陣;
- 現在假設有一個轉換矩陣P,將X映射到另一個空間得到Y,即Y=XP,使得轉換之后的Y的協方差矩陣D1是一個對角陣,即&#
總結
以上是生活随笔為你收集整理的matlab中利用princomp实现PCA降维的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【深度学习】empty() receiv
- 下一篇: win10下gnuplot的安装