您的位置:首页 > 编程语言 > MATLAB

matlab下libSVM的用法

2016-01-07 11:06 453 查看

libSVM的安装、编译有问题的可以百度。下面给出一个简单的例子,并对libSVM训练后的model内部的几个参数加以说明

%% 自定义的三个向量

x=[3 3;4 3; 1 1];

y=[1;1;-1];

[m,n]=size(x);

hold on;

axis([0 5 0 4]); % axis([xmin,xmax,ymin,ymax])

set(gca,'XTick',[0:1:5]) %改变x轴坐标间隔显示

for i=1:m

if y(i)==1

plot(x(i,1),x(i,2),'+');

else

plot(x(i,1),x(i,2),'o');

end

end

%% 用libsvm训练样本,并进行正确率分析

model = svmtrain(y, x,'-s 0 -t 0'); %训练svm模型

[predict_label]=svmpredict(y,x,model);%用训练好的svm模型,预测数据

经过svmtrain后,得到svm的模型model。这个模型的几个主要参数及意义:
rho:表示截距b,符号与一般教材上的公式相反。
sv_indices:表示求得的支持向量的索引

sv_coef:表示对应支持向量的系数ai,而且这些系数是已经和对应的标签相乘过的。

SVs:表示具体的支持向量

有了这些信息后,可自行做预测(当然直接用svmpredict更简单)
做线性预测时,假设查询点为x,预测结果=sum(ai*xi.*x)-rho,而不是sum(ai*yi*xi.*x)-rho
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: