• 学习笔记(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)


     

  • 相关阅读:
    net core 3.1 依赖注入
    vue temeplete standard
    net core 3.1 Global
    vue Multiple selection
    c# mvc modelstate
    vue temeplete
    vue element pickdate combox input 排版
    c# 生成 验证码
    vue checkbox ajax
    js算法(2)
  • 原文地址:https://www.cnblogs.com/haoyul/p/6947530.html
Copyright © 2020-2023  润新知