LIBSVM工具箱简单分类与回归实例

SVM可用于分类和回归。

1.分类实例

需要训练数据和测试数据的数据及标签。

clear;
clc;
close all;
%训练数据及标签
data = [176 70;180 80;161 45;163 47;];
label = [1;1;-1;-1];
model = svmtrain(label,data);
%测试数据及标签
testdata = [190 85];
testdatalabel = -1;

[predictlabel,accurary,decision_values] = svmpredict(testdatalabel,testdata,model);

predictlabel
if 1 == predictlabel
    disp('==该生为男生');
end
if -1 == predictlabel
    disp('==该生为女生');
end

两个函数svmtrain、svmpredict。

model = svmtrain(label,data,parameters);

该方法中常见参数为c、g、t;

t为核函数;

c为惩罚参数;

g为核函数参数;

[predictlabel,accurary,decision_values] = svmpredict(label,data,model);

accuracy =

  99.6296

  0.0148

  0.9851

返回参数accuracy从上到下的意义依次是:

分类准确率

平均平法误差(mean squared error,MSE)

平方相关系数(squared correlation coefficient,r2)

2.回归实例

分类问题和回归问题本质是一样的,就是有一个输入(属性矩阵或者自变量)又有输出(分类输出是分类标签,回归输出是因变量),也就是相当于一个函数映射:y = f(x)

下面实例中x相当于上面分类小例子中的属性矩阵data,y相当于小例子中的label;相应的回归问题中x就是自变量,y就是因变量。


<pre name="code" class="plain">clear;
clc;
close all;
%生成待回归的数据x = (-1:.1:1)';y = -x.^2;%建模回归模型model = svmtrain(y,x,'-s 3 -t 2 -c 2.2 -g 2.8 -p 0.01');%利用建立的模型看其在训练集合上的回归效果[py,mse,prob_estimates] = svmpredict(y,x,model);scrsz = get(0,'ScreenSize');figure('Position',[scrsz(3)*1/4 scrsz(4)*1/6 scrsz(3)*4/5 scrsz(4)]*3/4);plot(x,y,'o');hold on;plot(x,py,'r*');legend('原始数据','回归数据');grid on;%进行测试testx = 1.1;display('真实数据');testy = -testx.^2;[ptesty,tmse,prob_estimates] = svmpredict(testy,testx,model);display('预测数据');ptesty
 


  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值