MAT之PCA:利用PCA(四个主成分的贡献率就才达100%)降维提高测试集辛烷值含量预测准确度并《测试集辛烷值含量预测结果对比》
生活随笔
收集整理的這篇文章主要介紹了
MAT之PCA:利用PCA(四个主成分的贡献率就才达100%)降维提高测试集辛烷值含量预测准确度并《测试集辛烷值含量预测结果对比》
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
MAT之PCA:利用PCA(四個主成分的貢獻率就才達100%)降維提高測試集辛烷值含量預測準確度并《測試集辛烷值含量預測結果對比》
?
?
目錄
輸出結果
實現代碼
?
?
輸出結果
后期更新……
?
實現代碼
load?spectra;?? <br> temp =?randperm(size(NIR, 1));P_train = NIR(temp(1:50),:); T_train = octane(temp(1:50),:);P_test = NIR(temp(51:end),:); T_test = octane(temp(51:end),:);[PCALoadings,PCAScores,PCAVar] = princomp(NIR);?figure percent_explained = 100 * PCAVar /?sum(PCAVar);? pareto(percent_explained) xlabel('主成分') ylabel('貢獻率(%)') title('PCA:調用princomp函數實現各個主成分的貢獻率—Jason niu')[PCALoadings,PCAScores,PCAVar] = princomp(P_train);? figure plot(PCAScores(:,1),PCAScores(:,2),'r+') title('PCA:通過PCA判斷樣本的測試集是否都在訓練范圍內—Jason niu') hold?on [PCALoadings_test,PCAScores_test,PCAVar_test] = princomp(P_test); plot(PCAScores_test(:,1),PCAScores_test(:,2),'o') xlabel('1st Principal Component') ylabel('2nd Principal Component') legend('Training Set','Testing Set','location','best')k = 4;?? betaPCR = regress(T_train-mean(T_train),PCAScores(:,1:k)); betaPCR = PCALoadings(:,1:k) * betaPCR;??????????????????? betaPCR = [mean(T_train)-mean(P_train) * betaPCR;betaPCR];N =?size(P_test,1); T_sim = [ones(N,1) P_test] * betaPCR;error?=?abs(T_sim - T_test) ./ T_test;R2 = (N *?sum(T_sim .* T_test) -?sum(T_sim) *?sum(T_test))^2 / ((N *?sum((T_sim).^2) - (sum(T_sim))^2) * (N *?sum((T_test).^2) - (sum(T_test))^2));result = [T_test T_sim?error]figure plot(1:N,T_test,'b:*',1:N,T_sim,'r-o') legend('真實值','預測值','location','best') xlabel('預測樣本') ylabel('辛烷值') string = {'PCA:利用PCA降維提高《測試集辛烷值含量預測結果對比》的準確度—Jason niu';['R^2='?num2str(R2)]}; title(string)?
?
相關文章
PCA:利用PCA(四個主成分的貢獻率就才達100%)降維提高測試集辛烷值含量預測準確度并《測試集辛烷值含量預測結果對比》
?
?
總結
以上是生活随笔為你收集整理的MAT之PCA:利用PCA(四个主成分的贡献率就才达100%)降维提高测试集辛烷值含量预测准确度并《测试集辛烷值含量预测结果对比》的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Love:程序猿的方式~【情人节520—
- 下一篇: MAT之PLS:利用PLS(两个主成分的