2013-11-22 64 views
-1

我想在Matlab中執行我的特徵選擇的PCA。據我瞭解,在Matlab中已經預編譯功能 [pc,zscores,pcvars] = princomp(yeastvalues)Matlab中的PCA-主成分分析,代碼

這是真的還是我需要別的?

+0

Princomp是「統計工具箱」的功能,而不是純粹的matlab,如果這是你的問題。 – bdecaf

+1

你在問什麼?你使用'princomp'函數嗎?因爲它站立,你什麼也沒問 – Dan

+1

在最新版本的MATLAB中,你應該使用'pca' –

回答

1

在MATLAB的最新版本中,最好使用的功能是pca。這是爲了逐步取代舊功能princomp,儘管princomp仍然支持向後兼容性,並且我認爲至少可以保留幾個版本。

pcaprincomp是統計工具箱的一部分。您可以通過輸入命令ver來檢查是否安裝了統計工具箱,該命令將列出所有已安裝的產品。

任一命令的輸出通常標記爲[coeffs, scores, latent]。首先是主成分的係數。第二個是主成分分數(與z分數完全不同)。第三是主要組件差異。鑑於你的變量命名爲[pc, zscores, pcvars],我不確定你期望得到什麼,但這就是你會得到的。

+0

是的,我有統計工具箱。所以我可以使用princomp或者pca。那麼在使用princomp或者pca之前我應該​​怎麼處理數據集呢? – user1629213

+0

在應用PCA之前或之後,我不知道應該如何處理您的數據 - 完全取決於您的數據是什麼樣的,以及您想回答哪些問題。如果你的數據全是數字的,那麼你可以直接將它直接放入PCA中,但取決於你的應用程序,你可能需要將它集中,或者縮放它,或者應用其他一些變換。如果它不是數字,或者它包含缺少的數據,則需要以其他方式進行修改。沒有人可以在不知道您的應用程序和數據性質的情況下做出回答。 –

+0

我的應用程序是輔助機器人。因此,我從我的傳感器數據中提取了一些參數,我認爲這些參數與在執行某項任務時對用戶進行分類有關。 我從部署在輪椅上的傳感器包中獲取運動數據。我把某些動作歸類爲180度,Im給他一個標記(從1到4) 所以從傳感器包和軟件中我已經提取了速度,距離,時間,速度標準差等參數與用戶運行的分類相關。所以我的數據都是數字。現在希望很清楚。 – user1629213