首页 > 代码库 > 学习笔记(3)---安装SVM问题及解决方法

学习笔记(3)---安装SVM问题及解决方法

1. LibSVM下载,安装

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

2. 入门

[plain] view plain copy
 
  1. [heart_scale_label,heart_scale_inst]=libsvmread(‘heart_scale‘); % 导入数据  
  2. model = svmtrain(heart_scale_label,heart_scale_inst, ‘-c 1 -g 0.07‘); % 训练模型  
  3. [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‘)

所以正确的用法应该是:

[plain] view plain copy
 
  1. [predict_label, accuracy, dec_values] = svmpredict(heart_scale_label, heart_scale_inst, model);  

或者:

 

[plain] view plain copy
 
  1. [predicted_label] = svmpredict(heart_scale_label, heart_scale_inst, model);  

 


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

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

 

 


 

学习笔记(3)---安装SVM问题及解决方法