0
我使用matlab的princomp函數來做PCA。 從我的理解,我可以檢查潛在的來決定我需要多少維度。我怎麼能知道哪些尺寸是主要組成部分?
[coeff, score, latent, t2] = princomp(fdata);
cumsum(latent)./sum(latent);
,並通過使用trainMatrix = _係數(:,1:10)(我選擇前10個維度),並newData =數據* trainMatrix,我能得到減少的數據。
但是我怎麼能找出哪個維度減少了,哪個維度保留了?
我的意思是,如果我有30個功能,可以在princomp之後弄清楚,我保留了哪10個特徵(原始數據的列索引)?
謝謝。
我的意思是,有什麼辦法可以知道特徵值排序結果?例如,我可以確定哪個功能是主要功能。我可以使用coeff矩陣來確定哪個特徵具有較大的權重? – 2013-04-25 01:04:45
@FreyaRen:PCA只是在一個新的座標系統中表達相同的數據,這樣第一個維度包含數據中最大的方差,下一個維度垂直並沿着最大的剩餘方差定位,依此類推......也許一個諸如此類的可視化可能會幫助您理解它:http://www.mathworks.com/help/stats/biplot.html。當然,你可以將維數截成第一個'k',然後選擇'k'來獲得足夠好的近似值,其中包含原始數據方差的95% – Amro 2013-04-25 13:15:15