⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 plotclassdata.m

📁 This is a support vector machine program developed based on quadprog. Polynomial and RBF kernel are
💻 M
字号:
function plotclassdata(X, y, alpha_s, y_s, x_s, b0, K, K_p)

[len, p] = size(X);

n_1 = 0;
n_2 = 0;
for n=1:len
    if y(n) == 1
        n_1 = n_1 + 1;
        for m=1:p
            X_1(n_1,m) = X(n,m);
        end
    else
        n_2 = n_2 + 1;
        for m=1:p
            X_2(n_2,m) = X(n,m);
        end
    end
end
%{
x1 = [min(X(:,1)):(max(X(:,1))-min(X(:,1)))/200:max(X(:,1))];
x2 = zeros(length(x1),1);
for n=1:length(x1)  
    if K == 1
        x2(n) = fsolve(@(x)((alpha_s.*y_s)'*((x_s*[x1(n);x]+ones(length(alpha_s),1)).^K_p)+b0), x1(n));
    elseif K == 2
        x2(n) = fsolve(@(x)((alpha_s.*y_s)'*exp(-(sum(((x_s-ones(length(x_s),1)*[x1(n),x]).^2)')')./(2*K_p^2))+b0), x1(n));
    else
    end
end
%}

x1 = [X(:,1);(min(X(:,1))-1).*ones(length(X),1)];
x2 = [(min(X(:,2))-1).*ones(length(X),1); X(:,2)];

for n=1:length(x1)/2  
    if K == 1
        x2(n) = fsolve(@(x)((alpha_s.*y_s)'*((x_s*[x1(n);x]+ones(length(alpha_s),1)).^K_p)+b0), X(n,2));
    elseif K == 2
        x2(n) = fsolve(@(x)((alpha_s.*y_s)'*exp(-(sum(((x_s-ones(length(x_s),1)*[x1(n),x]).^2)')')./(2*K_p^2))+b0), X(n,2));
    else
    end
end

for n=length(x1)/2+1:length(x1)  
    if K == 1
        x1(n) = fsolve(@(x)((alpha_s.*y_s)'*((x_s*[x;x2(n)]+ones(length(alpha_s),1)).^K_p)+b0), X(n-length(x1)/2,1));
    elseif K == 2
        x1(n) = fsolve(@(x)((alpha_s.*y_s)'*exp(-(sum(((x_s-ones(length(x_s),1)*[x,x2(n)]).^2)')')./(2*K_p^2))+b0), X(n-length(x1)/2,1));
    else
    end
end

if K == 1
    S = find(min(X(:,2)) < x2(1:length(x1)/2) < max(X(:,2)) );
elseif K == 2
    S1 = find(min(X(:,2)) < x2(1:length(x1)/2) < max(X(:,2)) );
    S2 = find(min(X(:,1)) < x1(length(x1)/2+1:length(x1)) < max(X(:,1)));
    %S = intersect(S1,S2);
    S2 = S2+(length(x1)/2).*ones(length(S2),1);
    %S3 = S+(length(x1)/2).*ones(length(S),1);

    S = [S1;S2];
else
end
        
x1 = x1(S);
x2 = x2(S);

plot(X_1(:,1), X_1(:,2), 'bo', X_2(:,1), X_2(:,2), 'rx', x1,x2,'k.', x_s(:,1), x_s(:,2), 'm*');

⌨️ 快捷键说明

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