我必須寫一個分類器(高斯混合模型),我用它來進行人類動作識別。 我有4個視頻數據集。我選擇其中3個作爲訓練集,其中1個作爲測試集。 在我將gm模型應用到訓練集之前,我在其上運行pca。主成分分析
pca_coeff=princomp(trainig_data);
score = training_data * pca_coeff;
training_data = score(:,1:min(size(score,2),numDimension));
在測試步驟中,我應該怎麼做?我應該執行的測試數據
new_pca_coeff=princomp(testing_data);
score = testing_data * new_pca_coeff;
testing_data = score(:,1:min(size(score,2),numDimension));
或者我應該用我計算訓練數據的pca_coeff新princomp?
score = testing_data * pca_coeff;
testing_data = score(:,1:min(size(score,2),numDimension));
謝謝Richante,你的回答很明確和有用。我有另一個疑問。我必須使用多少個組件?對於每個觀察,我計算800個特徵,這些是原始數據的維度。 numDimension的最佳選擇是什麼?是否有我可以使用的公式,或者是否應該通過實驗結果選擇它? –
我在原始答案中添加了一些信息來描述如何選擇主要組件的數量。簡單的答案是:沒有一個好的公式,通過實驗選擇可能沒問題。 – Richante
關於最後一行代碼'proportion_of_variance = ...',Matlab docs計算如下:'proportion_of_variance = cumsum(eigenvalues)./ sum(eigenvalues)',減輕對'k'變量的需求,而不是你得到一個向量,並可以做一個查找來找到達到閾值的位置。 – Unapiedra