• 大小: 4KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-05-12
  • 语言: Matlab
  • 标签: matlab  

资源简介

支持向量机(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

评论

共有 条评论