libsvm在MATLAB中的简单使用

libsvm简介

LIBSVM是台湾大学林智仁(Lin Chih-Jen)教授等开发设计的一个简单、易于使用和快速有效的SVM模式识别与回归的软件包,他不但提供了编译好的可在Windows系列系统的执行文件,还提供了源代码,方便改进、修改以及在其它操作系统上应用;该软件对SVM所涉及的参数调节相对比较少,提供了很多的默认参数,利用这些默认参数可以解决很多问题;并提供了交互检验(Cross Validation)的功能。该软件可以解决C-SVM、ν-SVM、ε-SVR和ν-SVR等问题,包括基于一对一算法的多类模式识别问题。

简单例子

% 数据准备
load heart_scale;
x = heart_scale_inst;
y = heart_scale_label;
x_train = x(1:200, :);
x_test  = x(201:270, :);
y_train = y(1:200);
y_test  = y(201:270);
%训练模型
model = svmtrain(y_train, x_train);
%测试模型
[pred, acc, ~] = svmpredict(y_test, x_test, model);
% 波浪符号符号表示忽略这个返回参数

其中数据集heart_sca le在libsvm文件夹内

svmtrain简单用法

model = svmtrain(label, data, ‘option’);
label表示数据集标签
data表示数据
option表示训练参数设置:

-s svm_type : set type of SVM (default 0)
0 – C-SVC (multi-class classification)
1 – nu-SVC (multi-class classification)
2 – one-class SVM
3 – epsilon-SVR (regression)
4 – nu-SVR (regression)
-t kernel_type : set type of kernel function (default 2)
0 – linear: u’*v
1 – polynomial: (gamma*u’*v + coef0)^degree
2 – radial basis function: exp(-gamma*|u-v|^2)
3 – sigmoid: tanh(gamma*u’*v + coef0)
4 – precomputed kernel (kernel values in training_instance_matrix)

-d 多项式核函数的degree
-c 损失函数系数
-g 核函数gamma参数,针对rbf、多项式核、sigmoid核

例如:

model = svmtrain(y_train, x_train, '-s 0 -t 2 -c 0.5 -g 0.1');
% 参数表示的是,选择多分类,选择高斯核,c=0.5,gamma=0.1 

参数选择技巧:
对于特征很多的数据,直接用线性核即可,不必用高斯核

svmpredict简单用法

[pred, accuracy, ~] = svmpredict(y_test, x_test, model);

pred表示预测结果,accuracy表示预测精度,y_test表示真实标签,x_test表示测试集,model表示之前训练好的模型

获取更多使用帮助,可在命令行里输入svmtrain,svmpredict
注意:若输入help svmtrain将得到MATLAB自带二分类SVM使用帮助

  • 6
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值