從線性空間的角度看,在乙個定義了內積的線性空間裡,對乙個n階對稱方陣進行特徵分解,就是產生了該空間的n個標準正交基,然後把矩陣投影到這n個基上。n個特徵向量就是n個標準正交基,而特徵值的模則代表矩陣在每個基上的投影長度。
特徵值越大,說明矩陣在對應的特徵向量上的方差越大,功率越大,資訊量越多。
經過特徵值分解,已經得到的n個特徵向量和對應的特徵值。根據特徵值的模的大小,取前m個最大的特徵值和對應的特徵向量,就得到了原始矩陣的m個最主要的方向和在對應方向上的投影長度。這樣,原始資料的主要資訊就被保留了下來,而且資料維度從n降到了m。
舉個栗子:
在3維空間中,資料分別如銀河系,每顆星代表乙個資料點(圖1)。從圖3中可以看出,資料在其中一維上,方差較其它兩維要小得多,即,在該方向上的特徵值的模較小。那麼在保留大部分資訊的前提下,去掉這一維,得到的二維資料(圖2)也是能較好反應原始資料的。
% pca dimensionality reduction
%lores 的行數表示原始資料的維數, 列數表示資料的個數
c = double(lores * lores');
[v, d] = eig(c);
d = diag(d); % perform pca on features matrix
d = cumsum(d) / sum(d);
k = find(d >= 1e-3, 1); % ignore 0.1% energy
v_pca = v(:, k:end); % choose the largest eigenvectors' projection
lores = v_pca' * lores;
其中,eig()函式用於求矩陣的特徵值和特徵向量。
知乎上關於 如何理解矩陣特徵值? 的回答
PCA主成分分析(降維)
opencv中使用 實現降維分類預處理 參考 降維 我的理解是,通過降維得到基本特徵可以加快學習演算法。並且由於降維後的資料本身就是正交的,和聚類一樣可以實現分類 識別問題。在自我學習中也可以採用大量無標註的影象,對這些影象降維分類,並結合部分編碼資料得到特徵。例如 將很2500張人臉資訊,通過25...
降維 PCA 主成分分析
其實早該整理一下pca了,怎奈一直沒有時間,可能是自己對時間沒有把握好吧,下面進入正題。所謂降維,就是降低資料的維數。在機器學習中尤其常見,之前做過對一幅提取小波特徵,對於一幅大小為800 600的,如果每個點提取五個尺度 八個方向的特徵,那麼每乙個畫素點提取40個特徵,那麼一副的話就是40 800...
降維方法 主成分分析(PCA)
推薦一篇絕對好的文章 理解pca的數學原理 pca principle component analysis 主成分分析,主要應用於資料降維,它是一種非監督的降維方法,主要捕獲觀測資料之間的變異程度。當資料集的維度過高之後,運用各種演算法處理起來的時間複雜度可能會很高,所以需要對資料進行降維處理,而...