adassvm.m

来自「自己用libsvm封的svm matlab」· M 代码 · 共 50 行

M
50
字号
function [predictLabel, answer, arratetrain, orsample, rorname, arrate, errorsample, errorname] = adassvm(datatrain, traintag, datatest, testtag)

testornot = 2;

if (length(datatest) == 0)
    testornot = 0;
elseif (length(testtag) == 0)
    testornot = 1;
end

model = svmtrain(traintag, datatrain, '-t 0 -c 100');
[predictLabel, arr] = svmpredict(traintag, datatrain, model);

trainNumber = length(predictLabel);
traincorrect = zeros(1, trainNumber);
for i = 1 : trainNumber
    if (predictLabel(i) == traintag(i))
        traincorrect(i) = 1;
    end
end

arratetrain = length(find(traincorrect == 1)) / trainNumber;
orsample = find(traincorrect == 0);
rorname = predictLabel(orsample);

if (testornot == 2)
    [answer, arranswer] = svmpredict(testtag, datatest, model);
    sampleNumber = length(answer);
    correct = zeros(1, sampleNumber);
    for i = 1 : sampleNumber
        if (answer(i) == testtag(i))
            correct(i) = 1;
        end
    end

    arrate = length(find(correct == 1)) / sampleNumber;
    errorsample = find(correct == 0);
    errorname = answer(errorsample);    
elseif (testornot == 1)
    testtag = zeros(size(datatest, 1), 1);
    [answer, arranswer] = svmpredict(testtag, datatest, model);
    arrate = -1;
    errorsample = [];
    errorname = {};
else
    answer = [];
    arrate = -1;
    errorsample = [];
    errorname = {};
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?