svmtst.m

来自「This is a support vector machine program」· M 代码 · 共 38 行

M
38
字号
function err = SVMtst(alpha_s, y_s, x_s, b0, K, K_p, X, y)

% Kernel,  K = 1 : Polynomial,  K = 2 : RBF,  K_p : Kernel Parameter
% alpha_s : Support vector
% y_s & x_s : train data according to S.Vs
% b0 : intercept

% classifying
y_hat = zeros(length(y),1);

if K == 1
    for n=1:length(X)
        sum = 0;
        for i=1:length(alpha_s)
            sum = sum + alpha_s(i)*y_s(i)*((x_s(i,:)*X(n,:)'+1).^K_p);
        end
        if (sum+b0) > 0
            y_hat(n) = 1;
        else
            y_hat(n) = -1;
        end
    end
elseif K == 2
    for n=1:length(X)
        sum = 0;
        for i=1:length(alpha_s)
            sum = sum + alpha_s(i)*y_s(i)*exp(-((norm((x_s(i,:)-X(n,:))))^2)/(2*K_p^2));
        end
        if (sum+b0) > 0
            y_hat(n) = 1;
        else
            y_hat(n) = -1;
        end
    end
else
end

err = length(find(y ~= y_hat ))/length(X);

⌨️ 快捷键说明

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