基于matlab的libsvm使用遇到的问题

Posted 我从花中来

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于matlab的libsvm使用遇到的问题相关的知识,希望对你有一定的参考价值。

1、遇到这个问题Error using svmclassify (line 53)

The first input should be a struct generated by SVMTRAIN.
可参照https://blog.csdn.net/shang_jia/article/details/45535135;
即将你安装的libsvm去掉,运用matlab原有的libsvm就可以解决。
2、svm例子可参照:
http://www.ilovematlab.cn/thread-74019-1-1.html
load fisheriris这个例子用自带svm没有问题

load ‘heart_scale.mat’这个例子利用加载libsvm程序在加载时出了问题,解决如下:
Error using load
Unable to read file ‘heart_scale.mat’: No such file or directory.

加载数据改为[label_vector, instance_matrix] = libsvmread(\'heart_scale\')即可。

https://blog.csdn.net/red_stone1/article/details/54313821;(自带svm函数)
http://www.ilovematlab.cn/thread-47453-1-1.html;(加载的libsvm)
3、加载的libsvm的例子:http://www.cnblogs.com/tornadomeet/archive/2012/06/04/2534939.html
1)16棋盘格数据分类
[checkerboard_16_predict_label]=svmpredict(checkerboard_16_test_label,checkerboard_16_test_data,model);%,checkerboard_16_accuarcy
2)UCI中iris数据分类(importdata)

[attrib1, attrib2, attrib3, attrib4, class] = textread(\'iris.txt\', \'%f%f%f%f%s\', \'delimiter\', \',\');
attrib = [attrib1\'; attrib2\'; attrib3\'; attrib4\']\';
a = zeros(150, 1);
a(strcmp(class, \'Iris-setosa\')) = 1;
a(strcmp(class, \'Iris-versicolor\')) = 2;
a(strcmp(class, \'Iris-virginica\')) = 3;
iris_new=[attrib a];

iris_train_label=iris_new([1:40 51:90 101:140],end);%每类取40个数据作为训练,共120个训练数据
iris_train_data=iris_new([1:40 51:90 101:140],1:end-1);
iris_test_label=iris_new([41:50 91:100 141:150],end);%每类取10个数据作为测试,共30个测试数据
iris_test_data=iris_new([41:50 91:100 141:150],1:end-1);
save irisdata;
model=svmtrain(iris_train_label,iris_train_data);
[iris_predict_label]=svmpredict(iris_test_label,iris_test_data,model);%,iris_accuracy

 

4、 MATLAB自带的svm实现函数与libsvm差别小议:http://www.ilovematlab.cn/thread-85860-1-1.html

以上是关于基于matlab的libsvm使用遇到的问题的主要内容,如果未能解决你的问题,请参考以下文章

记录在学习ML过程中,在MATLAB中集成LibSVM时遇到的问题

如何设置 LIBSVM Matlab 接口?

libsvm 安装及容易遇到的问题

使用 LIBSVM 的 one vs rest 多类分类。 matlab

如何在matlab里安装libsvm包

使用 LIBSVM 进行测试