matlab libsvm包的安装和使用svmtrain返回的model一直为[ ],竟然花了整整一下午加晚上的时间才解决,发现问题所在的那刻,觉得自己真de怕是个傻子,特此记录一下,希望以后能daydayup!
-
matlab自带函数svmtrain的输入顺序为(sample, label),但是libsvm输入参数顺序为(label ,sample)
-
which svmtrain即可得到调用的是哪里的svmtrain函数
-
注意调用函数的输出和svmtrain不同,否则就会出现得到的model=[]的情况。
比如:
[model,~] = libsvmtrain(train_label,PLS_X,’-s 3 -t 2 -c 300 -g 0.2 -q’); %此处已经将svmtrian函数改名
就会出现model=[ ]的情况
正确调用应采用:
model = libsvmtrain(train_label,PLS_X,’-s 3 -t 2 -c 300 -g 0.2 -q’); -
本来采用addpath添加路径到libsvm库,然后还不行,就干脆把所有的函数和数据放在libsvm/matlab文件夹里,发现还是不行(此处本人已崩溃),在网上搜测试用例,发现就可以。直到最后,才发现是自己调用的输入参数和输出参数格式出错。
写到这,觉得自己实在是菜的可以,竟然这么小的问题整这么久,希望以后自己能细心点,多思考!
关于测试以及libsvm包安装问题,可以参考以下链接我觉得对我帮助很大,感谢博主。
https://blog.csdn.net/xiaopihaierletian/article/details/54317753?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.channel_param
ps::同时libsvm库的版本问题同样很重要!!
不同版本函数的调用格式不同!
本笔记采用的是libsvm-3.23