复盘——libsvm例程调试

复盘——libsvm例程调试

matlab的自带SVM只能进行二分类,为了进行多分类,我经过百度搜索之后,发现了台湾大学一位老师开发的工具包,libsvm。

首先,需要去自己下载libsvm工具包。
然后,需要将libsvm工具包加载进来。

方法1:找到matlab安装文件下的toolbox文件夹,然后将解压后的工具包文件夹直接copy到这里面。可以从这里面下载
由于我是用的matlab模型,因此就直接下载第三行也就是MATLAB and OCTAVE那一行对应的版本了。下载之后别忘了解压。

方法2:或者这样做:这个链接里说了

代码如下:`

tic;
close all;
clear all;
clc;
format compact;

load heart_scale;
data = heart_scale_inst;
label = heart_scale_label;

ind = 200;
traindata = data(1:ind,:);
trainlabel = label(1:ind,:);
testdata = data(ind+1:end,:);
testlabel = label(ind+1:end,:);

model = libsvmtrain(trainlabel,traindata,'-s 0 -t 2 -c 1.2 -g 2.8');

model
Parameters = model.Parameters
Label = model.Label
nr_class = model.nr_class
totalSV = model.totalSV
nSV = model.nSV

% 利用建立的模型看其在训练集合上的分类效果
[ptrain,accuracy,prob_estimates] = libsvmpredict(trainlabel,traindata,model);



% 预测测试集合标签
[ptest,accuracy_test,prob_estimates_test] = libsvmpredict(testlabel,testdata,model);

代码注释可以看这篇文章

但是,有一点需要注意,我看上面那篇博文的博主没有注意这一点。代码中的函数,

一定

**要用 ***

libsvmpredict和libsvmpredict!


笔者在使用svmpredict和svmpredict的时候就出现了错误。

还有一个方面需要注意,我是将heart_scale数据文件和程序放在别的文件夹下了,并没有像一些博主说的那样在libsvm所在matlab的toolbox路径下运行。运行结果也没有问题。

但是,笔者的调试程序只是三分类,笔者如果想用自己的数据进行更多种类的分类,就要花点心思了,这是接下来几天的事情。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值