資源簡介
給出基于量子粒子群的支持向量機的matlab代碼,可以用傅里葉變化、小波變化等多種數據,留一法檢測分類正確率
代碼片段和文件信息
function?[erra]?=?fit_sqpso_pca_m_svm(xnpc)
%%?2012.9.17編寫程序,該程序特征值選用的是原始曲線的最大值,使用PCA進行降維,,使用svm進行分類,使用粒子群算法進行參數的尋優。
%%?需要尋優的參數
%x(1):[0?2];RBF?kernel的參數
%x(2):[0?1000000];svm?懲罰因子
x=abs(x);
load?wound_data_max
%%?歸一化
Y=mapminmax(wound_data_max‘01);????????????%要進行一次轉置,這樣的歸一化是對列(也就是每個傳感器響應曲線)的歸一化,也有的是對每一次采樣得到的數據進行歸一化。????????????????????????
%%?使用PCA進行數據降維
[COEFFSCORElatenttsquare]?=?princomp(Y‘);
input=SCORE(:1:npc);????????????????????????%根據npc確定降維后特征矩陣維數??????
%%?svm進行模式識別——“留一法”
obj=[1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;
????????2;2;2;2;2;2;2;2;2;2;2;2;2;2;2;2;2;2;2;2;
????????3;3;3;3;3;3;3;3;3;3;3;3;3;3;3;3;3;3;3;3;
????????4;4;4;4;4;4;4;4;4;4;4;4;4;4;4;4;4;4;4;4];
????%%?交叉驗證
???????K=80;?????????????????????????????????%折成的份數
???????indices?=?crossvalind(‘Kfold‘80K);??%?K=25102040????
???????????cp=?classperf(obj);????????????%要寫成1234的形式
?for?j?=?1:K????????????????????????
???????????test?=?(indices?==?j);????????????%交叉驗證的
評論
共有 條評論