libSVM在matlab下的使用安装
1) 从LIBSVM的官网http://www.csie.ntu.edu.tw/~cjlin/libsvm/上下载最新版本的LIBSVM,当前版本为libsvm-3.18.zip
2) 解压压缩包到电脑上一位置,如:C:\Program Files\libsvm-3.18
3) 假设你使用的是64位的操作系统和matlab。此时将libsvm-3.18文件夹下的windows目录添加到matlab目录中。即在matlab目录中添加:C:\ProgramFiles\libsvm-3.18\windows。因为windows下包含了matlab可执行的二进制文件libsvmread.mexw64/libsvmwrite.mexw64/svmpredict.mexw64/svmtrain.mexw64
4) 假设你使用的是32位操作系统和matlab,则需要自己编译相应的二进制文件。
在matlab命令窗口输入
>>mex –setup
这时matlab会提示你选择编译mex文件的c/c++编译器(先输入n,再选择对应的编译器)。
选择一个你电脑上安装的c/c++编译器,例如Microsoft Visual C++ 2010
将matlab当前目录设置为:cd ‘C:\Program Files\libsvm-3.18\matlab’
输入命令make
这时你会看到当前目录生成了二进制文件(4个):
libsvmread.mexw32
libsvmwrite.mexw32
svmpredict.mexw32
svmtrain.mexw32
将当前目录添加到matlab路径中即可。
5) 例子一个测试
注意到libsvm-3.18下有一个数据文件,名称为heart_scale。这是一个libsvm格式的数据文件。可使用libsvmread函数将其转化为matlab格式。
可使用以下命令测试:
[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); % test the trainingdata
如果出现一行:Accuracy = 86.6667% (234/270) (classification)。就说明成功了。就可以在matlab中使用svm了。
6) svmtrain函数相关参数说明
svmtrain函数返回的model可以用来对测试数据集进行预测。这是一个结构体变量,主要包括了以下几个域。[Parameters, nr_class, totalSV, rho, Label, ProbA, ProbB, nSV,sv_coef, SVs]。英文说明如下:
-Parameters: parameters
-nr_class: number of classes; = 2 for regression/one-class svm
-totalSV: total #SV
-rho: -b of the decision function(s) wx+b
-Label: label of each class; empty for regression/one-class SVM
-ProbA: pairwise probability information; empty if -b 0 or in one-classSVM
-ProbB: pairwise probability information; empty if -b 0 or in one-classSVM
-nSV: number of SVs for each class; empty for regression/one-class SVM
-sv_coef: coefficients for SVs in decision functions
-SVs: support vectors
如果没有指定’-b 1’选项则ProbA和ProbB为空矩阵。此外,当指定’-v’选项时,返回的model是一个数值,是cross-validation的准确率。
其中model.paramter是一个5X1的向量,model.Parameters参数意义从上到下依次为:
-s svm类型:SVM设置类型(默认0)
-t 核函数类型:核函数设置类型(默认2)
-d degree:核函数中的degree设置(针对多项式核函数)(默认3)
-g r(gama):核函数中的gamma函数设置(针对多项式/rbf/sigmoid核函数) (默认类别数目的倒数)
-r coef0:核函数中的coef0设置(针对多项式/sigmoid核函数)((默认0)
7)svmpredict函数参数说明
svmpredict函数返回三个值:
predict_label,是训练集预测得到的label向量。
accuracy,是一个3维的向量,从上到下分别是:分类准率(分类问题中用到的参数指标);平均平方误差(MSE (mean squared error)) (回归问题中用到的参数指标);平方相关系数(r2 (squared correlation coefficient))(回归问题中用到的参数指标)。
输出是个矩阵,包含着决策值或者是概率估计(当’-b 1’被指定时)。当训练数据有k类时,决策值矩阵是一个n行k*(k-1)/2列的矩阵(n为测试数据集个数,k为类别数),而每一行的输出是k*(k-1)/2个二分类器的结果。当’-b 1’被指定时,概率估计矩阵是一个n行k类的矩阵(n为测试数据集个数,k为类别数),每一行的输出是该测试数据属于每个类的概率。
libSVM在matlab下的使用安装的更多相关文章
- [转]Centos7下caffe的安装
Centos7下caffe的安装 原文地址:http://blog.csdn.net/s2392735818/article/details/49796017 版权声明:本文为博主原创文章,未经博 ...
- lnux下源码安装MySQL 5.6
nux下源码安装MySQL 5.6 说明:本文是我自己测试的MySQL5.6源码安装,经本人亲自实践,完全可用,另在5.6之前的版本也是可以按照本文源码安装的.我是在两台linux下一台安装5.5,另 ...
- (转)Linux下MatlabCompilerRuntime的安装和使用
1MCR简介 MCR之前是 Matlab Component Runtime的缩写,后更名为Matlab Compiler Runtime.MCR实际上是一组独立的共享库,也即是常说的动态连接库,所起 ...
- Windows下Anaconda的安装和简单使用
Windows下Anaconda的安装和简单使用 Anaconda is a completely free Python distribution (including for commercial ...
- Linux下命令行安装weblogic10.3.6
Linux下命令行安装weblogic10.3.6 一.安装前准备工作: 1.创建用户useradd weblogic;创建用户成功linux系统会自动创建一个和用户名相同的分组,并将该用户分到改组中 ...
- Ubuntu下git的安装与使用
Ubuntu下git的安装与使用 Ubuntu下git的安装与使用与Windows下的大致相同,只不过个人感觉在Ubuntu下使用git更方便. 首先,确认你的系统是否已安装git,可以通过git指令 ...
- centos7下使用yum安装mysql
CentOS7的yum源中默认好像是没有mysql的.为了解决这个问题,我们要先下载mysql的repo源. 1. 下载mysql的repo源 wget http://repo.mysql.com/m ...
- win7下IIS的安装和配置 图文教程
转自 http://www.jb51.net/article/29787.htm 最近工作需要IIS,自己的电脑又是Windows7系统,找了下安装的方法,已经安装成功.在博客里记录一下,给需要的 ...
- Linux下MongoDB服务安装
Linux下MongoDB服务安装 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案.MongoDB是一个介于关系数据库和非关系数据 ...
随机推荐
- So you want to be a 2n-aire? UVA - 10900(概率)
题意: 初始值为1, 每次回答一个问题,如果答对初始值乘2,答错归0,结束,一共有n个问题,求在最优的策略下,最后值的期望值 解析: 注意题中的一句话 每个问题的答对概率在t和1之间均匀分布 也就 ...
- 架构师成长之路6.6 DNS服务器搭建(构建企业级DNS)
点击返回架构师成长之路 架构师成长之路6.6 DNS服务器搭建(构建企业级DNS) 采用LVS-DR模式负载均衡,多IDC,多套DNS集群,通过master-slave技术保证dns配置的一致性. 1 ...
- oracle安装教程及常用命令
虽然网上已经有很多安装教程了,但还是写一个记录一下自己的安装过程以及遇到问题的解决办法 1 安装包下载: 去oracle的官网:https://www.oracle.com/index.html 选 ...
- luogu4181 [USACO18JAN]Rental Service (贪心)
我们要出租的话,一定是出租产奶量最少的牛 那我们就看出租多少头牛(其他的卖奶)的时候答案最大就可以了. (注意N有可能小于R) #include<bits/stdc++.h> #defin ...
- SpringCloud学习(二)---Eureka
Eureka 重点在使用,概念和源码基本不涉及 Eureka是一个基于REST(REST是HTTP协议的)的服务,主要在亚马逊网络服务(AWS)云中使用,定位服务来进行中间层服务器的均衡负载和故障转移 ...
- Java关键字synchronized详解
Java多线程thread互联网制造 synchronized 关键字,代表这个方法加锁,相当于不管哪一个线程A每次运行到这个方法时,都要检查有没有其它正在用这个方法的线程B(或者C D等),有的话 ...
- spring对事务的配置
接下来我将给大家介绍spring事务配置的两种方式: 1.基于XML的事务配置.2.基于注解方式的事务配置. 前言:在我们详细介绍spring的两种声明式事务管理之前,我们需要先理解这些概念 1)sp ...
- 何谓SQL Server参数嗅探
大家听到"嗅探"这个词应该会觉得跟黑客肯定有关系吧,使用工具嗅探一下参数,然后截获,脱裤o(∩_∩)o . 事实上,我觉得大家太敏感了,其实这篇文章跟数据库安全没有什么关系,实际上 ...
- 深入分析HashMap
本文基于jdk1.8 HashMap特点: HashMap具体方法分析: put方法分析: 执行流程图: public V put(K key, V value) { return putVal(ha ...
- JavaSE学习总结(六)——接口、抽象类、内部类
一.不需要实例化的原因 看一个示例: package com.zhangguo.chapter5.s1; /**动物园*/ public class Zoo { public static void ...