資源簡介
支持向量機(SVM)matlab代碼,用于二分類問題的模板。
代碼片段和文件信息
%function?[predY]=speakingDetection(X)
s=load(‘training.data‘);
[xy]=size(s);
vec?=?zeros(61);
xapp?=?[];
yapp?=?[];
i=1;j=1;
%數據初步處理
while?(i<=x)???
????vec(1)?=?s(i1);
????vec(2)?=?s(i2);
????vec(3)?=?s(i3);
????vec(4)?=?s(i4);
????vec(5)?=?s(i5);
????vec(6)?=?s(i6);
????xapp?=?[xappvec];
????yapp?=?[yapps(i7)];
????i=i+1;
end;
[NM]?=?size(xapp);
p?=?randperm(M);?%直接打亂了訓練樣本
numberOfSamplesForTraining?=?60000;??????%6000個數據訓練
xTraining?=?[];
yTraining?=?[];
for?i=1:numberOfSamplesForTraining
????xTraining??=?[xTrainingxapp(:p(i))];
????yTraining?=?[yTrainingyapp(p(i))];
end;
xTraining?=?xTraining‘;????%轉置
yTraining?=?yTraining‘;
xTesting?=?[];
yTesting?=?[];
for?i=numberOfSamplesForTraining+1:M
????xTesting??=?[xTestingxapp(:p(i))];
????yTesting?=?[yTestingyapp(p(i))];
end;
xTesting?=?xTesting‘;???
yTesting?=?yTesting‘;???
%%%%%%%%%%%%%%%%%%%%%%%%
%?%Normalization
%?[numVecnumDim]?=?size(xTraining);
%?avgX?=?mean(xTraining);
%?stdX?=?std(xTraining);
%?for?i?=?1:numVec
%?????xTraining(i:)?=?(xTraining(i:)-avgX)./stdX;
%?end;
%?[numVecnumDim]?=?size(xTesting);
%?
%?for?i?=?1:numVec
%?????xTesting(i:)?=?(xTesting(i:)-avgX)./stdX;
%?end;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%SVM?Gaussian?kernel?
%Search?for?the?optimal?C?and?gamma?K(x1x2)?=?exp{-||x1-x2||^2/gamma}?to
%make?the?recognition?rate?maximum.?
%Firstly?search?C?and?gamma?in?a?crude?scale?(as?recommended?in?‘A?practical?Guide?to?Support?Vector?Classification‘))
CScale?=?[-5-3?-1?1?3?579111315];
gammaScale?=?[-15-13-11-9-7-5-3-113];
C?=?2.^CScale;
gamma?=?2.^gammaScale;
maxRecognitionRate?=?0;
for?i?=?1:length(C)
????for?j?=?1:length(gamma)
????????cmd=[‘-t?2?-c?‘num2str(C(i))‘?-g?‘num2str(gamma(j))‘?-v?10‘];??%轉化為字符高斯核五折交叉檢驗
????????recognitionRate?=?svmtrain(yTrainingxTrainingcmd);
????????if?recognitionRate>maxRecognitionRate
????????????maxRecogn
- 上一篇:DPSK的MATLAB實現53470
- 下一篇:求動態條件相關系數
評論
共有 條評論