zoukankan      html  css  js  c++  java
  • 学习笔记(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 FilesMATLABR2012a oolboxioinfoiolearningsvmtrain.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)


     

  • 相关阅读:
    HDU 4912 Paths on the tree(LCA+贪心)
    BZOJ 1044 木棍分割(二分答案 + DP优化)
    Codeforces 551E GukiZ and GukiZiana(分块思想)
    计蒜客 UCloud 的安全秘钥(随机化+Hash)
    HDU 5794 A Simple Chess(杨辉三角+容斥原理+Lucas定理)
    mac-profile
    mac-httpd
    launchctl
    brew
    操作系统
  • 原文地址:https://www.cnblogs.com/haoyul/p/6947530.html
Copyright © 2011-2022 走看看