基于SVM的道路二值分割问题——对偶法求解和核函数

基于SVM的道路二值分割问题——对偶法求解和核函数

针对上一篇在原空间求解支持向量机的问题,这一篇给出了在对偶空间中求解该问题的方法。

在对偶空间中求解

在对偶空间中求解支持向量机

核函数求解

利用核函数求解支持向量机

程序实现

function [w,b0] = svc_antithesis(train_data,train_label)
%%函数功能:在对偶空间中利用MATLAB中的quadprog()函数求解
%输入:train_data:训练数据,在该问题中,是一个n*3的矩阵,列存储RGB值
%      train_label:训练标签,已知的分类标签,+1或-1
%输出:w,b0:最优权向量
n = size(train_data,1);
%构建x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0)中的H
H = (train_label*train_label').*(train_data*train_data');
%构建f矩阵
f = -ones(n,1);
%构建A矩阵
A = [];
%构建b矩阵
b = [];
%构建Aeq矩阵
Aeq = train_label';
%构建beq矩阵
beq = 0;
lb = 0;
ub = inf;
a0 = zeros(n,1); 
%调用quadprog()函数
a = quadprog(H,f,A,b,Aeq,beq,lb,ub,a0);
w = zeros(1,size(train_data,2));
for i=1:n
    w1 = a(i)*train_label(i)*train_data(i,:);
    w = w+w1;
end
w = w';
b0 = 0;
s = 0;
for i=1:n
    if (a(i)~=0)
        B0 = 1/train_label(i)-w'*train_data(i,:)';
        b0 = b0 + B0;
        s = s + 1;
    end
end
b0 = b0/s;

效果显示

第一张图是对偶空间中道路分割效果图,第二张图是利用高斯核函数得到的道路分割的效果图。
对偶空间中道路分割效果图
核函数求解得到的道路分割效果图

总结

到此,本次实验的也基本上就是这样了。关于支持向量机还有很多其它的应用,在这里只是想记录下来,以后自己需要用到的时候,还有地方能找到。这也是自己头一次写这个文章,有很多不好的地方,非常感谢能看到这的朋友。

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值