SVM学习笔记(1)—Matlab中LibSVM的安装及入门

来源:互联网 发布:软件著作权 用户手册 编辑:程序博客网 时间:2024/06/05 19:20

草稿,未编辑完!

 

1. LibSVM下载,安装

下载地址:http://www.csie.ntu.edu.tw/~cjlin/libsvm/,最新的版本是3.17

2. 入门

[heart_scale_label,heart_scale_inst]=libsvmread('heart_scale'); % 导入数据model = svmtrain(heart_scale_label,heart_scale_inst, '-c 1 -g 0.07'); % 训练模型[predict_label, accuracy, dec_values] =svmpredict(heart_scale_label, heart_scale_inst, model); % 测试

注意:

(1)下载解压后文件夹中的heart_scale,是VC++格式的,不能直接load, 否则会报错!

需要使用转换函数libsvmread(),其格式如下: [label_vector, instance_matrix] = libsvmread('filename');

所以导入数据的命令为:[heart_scale_label,heart_scale_inst] = libsvmread('heart_scale');

或者直接下载mat格式的数据,保存到当前目录下。下载地址:http://pan.baidu.com/s/1sj8l6ax

(2)在新版的matlab中,也有自带的SVM实现,函数名也是svmtrain. 为了避免冲突,可以将其备份后改名,比如改为svmtrain_backup.m.

文件的位置在:D:\Program Files\MATLAB\R2012a\toolbox\bioinfo\biolearning\svmtrain.m

(3)进行分类测试时,网络上许多教程中提到的 [predict_label, accuracy] = svmpredict(heart_scale_label, heart_scale_inst, model); 在最新的3.17版本中会出错,提示使用的语法格式为:Usage: [predicted_label, accuracy, decision_values/prob_estimates] = svmpredict(testing_label_vector, testing_instance_matrix, model, 'libsvm_options');或者 [predicted_label] = svmpredict(testing_label_vector, testing_instance_matrix, model, 'libsvm_options')

所以正确的用法应该是:

 [predict_label, accuracy, dec_values] = svmpredict(heart_scale_label, heart_scale_inst, model);

或者:

[predicted_label] = svmpredict(heart_scale_label, heart_scale_inst, model);


得到下面的结果,则说明测试成功!

Accuracy = 86.6667% (234/270) (classification)


 





2 0
原创粉丝点击