LibSVM-windows
本系列文章由 @YhL_Leo 出品,转载请注明出处。
文章链接: http://blog.csdn.net/yhl_leo/article/details/50112477
官方Web: https://www.csie.ntu.edu.tw/~cjlin/libsvm/
GitHub: https://github.com/cjlin1/libsvm
Tutorial: http://ntu.csie.org/~piaip/svm/svm_tutorial.html
1 库组成
Dos下运行程序有编译好的exe
文件可以直接运行。例如本人的libSVM
(版本为3.20)解压在E:\ClassTask\libsvm-3.20
目录下:
其中heart_scale
文件是一个libSVM库提供的训练示例样本,打开后可以发现里面是一堆这样的数据:
很容易看出,数据集结构是:
label vec{(index_1,value_1), ...(index_13, value_13)}
即两类观测值+1
和-1
,后面的13维向量是每个样本某一特征的特征值。
进入windows
子文件夹下有:
其中包含四个exe
文件:
svm-predict
:依照已经训练好的model ,输入新的数据,并输出预测新数据的类别。svm-scale
:有时候特征值的波动范围比较大需要对特征数据进行缩放,范围可以自己定,一般是[0,1]或[-1,1]。svm-toy
:图形界面,可以自己画点,产生数据,并显示/保存分类结果。svm-train
:会接受特定格式的训练输入文件,产生一个model 文件。
2 svm-train
首先来看svm-train
,在Dos下切换到windows
目录下(Win+R
->cmd
->切换盘符,cd
切换文件夹),后输入命令:
> E:\ClassTask\libsvm-3.20\windows> svm-train ..//heart_scale ..//train.model
这里并没把heart_train
文件拷入到windows
下,而是在其前一层父目录中。如果已经拷到windows
目录下,就无需..//
。
回车后很快就会出现:
其中:
#iter
为迭代次数nu
是选择的核函数类型的参数obj
为SVM文件转换为的二次规划求解得到的最小值rho
为判决函数的偏置项b
nSV
为标准支持向量个数(0<ai<c)nBSV
为边界上的支持向量个数(ai=c′)Total nSV
为支持向量总个数(对于两类来说,因为只有一个分类模型Total nSV
=nSV
,但是对于n类,Total nSV
=∑ni=1nSV
打开train_model
文件可以看到:
其中:
svm_type c_svc
:所选择的svm类型,默认为c_svc
kernel_type rbf
:训练采用的核函数类型,此处为RBF
核gamma 0.0769231
:RBF
核的参数γnr_class 2
:类别数,此处为两分类问题total_sv 132
:支持向量总个数rho 0.424462
:判决函数的偏置项b
label 1 -1
:原始文件中的类别标识nr_sv 64 68
:每个类的支持向量机的个数SV
:以下为各个类的权系数及相应的支持向量
3 svm-predict
再看svm-predict
,利用刚刚训练完成的模型就可以进行分类:
> E:\ClassTask\libsvm-3.20\windows> svm-predict ..//heart_scale ..//train.model ..//train.out
回车后,就会得到一个生成文件train.out
,同时Dos中也会输出分类精度:
即分类精度为86.6667%,而train.out
文件打开后,每行只有-1
或1
表示样本的类别。
4 svm-scale
数据缩放的主要目的有两个:
- 防止某个特征过大或过小,从而在训练中起的作用不平衡;
- 为了计算速度。因为在核计算中,会用到内积运算或exp运算,不平衡的数据可能造成计算困难。
用法为:
> svm-scale -l lower -u upper -y y_lower y_upper -s save_filename -r restore_filename filename
其中:
-l
:设定数据的下限值lower
,缺省为-1-u
:设定数据的上限值upper
,缺省为+1-y
:是否对目标值同时进行缩放,y_lower
为下限值,y_upper
为上限值-s
:表示将缩放的规则保存为文件save_filename
-r
:表示将按照已经存在的规则文件restore_filename
进行缩放filename
:待缩放的数据文件,文件格式按照libSVM格式
例如键入下面的指令:
E:\ClassTask\libsvm-3.20\windows>svm-scale -s ..//scaled.out ..//heart_scale > ..//save.data
就会生成两个文件scaled.out
和save.data
,可以自行查看其中的内容。
5 svm-toy
svm-toy
是一个用户测试小工具,运行后如下:
随机用鼠标点一些点,然后点击change
增加新的类别,例如随机画三类点:
点击run
,可以得到分类结果:
LibSVM-windows的更多相关文章
- libsvm下的windows版本中的工具的使用
下载的libsvm包里面已经为我们编译好了(windows).进入libsvm\windows,可以看到这几个exe文件: a.svm-toy.exe:图形界面,可以自己画点,产生数据等. b.svm ...
- Libsvm Matlab 快速安装教程 (适用于Win7+, 64bit, and Matlab2016a+)
近日在开始学习Machine Learning SVM 相关算法,将Matlab平台安装SVM的步骤记录如下,亲测可用: 开发环境: Windows 8 64 bit, Matlab 2016a, S ...
- Libsvm:脚本(subset.py、grid.py、checkdata.py) | MATLAB/OCTAVE interface | Python interface
1.脚本 This directory includes some useful codes: 1. subset selection tools. (子集抽取工具) subset.py 2. par ...
- Linux下的Libsvm使用历程录
原文:http://blog.csdn.net/meredith_leaf/article/details/6714144 Linux下的Libsvm使用历程录 首先下载Libsvm.Python和G ...
- libsvm使用方法总结
1.所需要软件下载: (1)libsvm(http://www.csie.ntu.edu.tw/~cjlin/libsvm/) (2)python (3)gnuplot 画图软件(ftp://ftp. ...
- python之基于libsvm识别数字验证码
1. 参考 字符型图片验证码识别完整过程及Python实现 2.图片预处理和手动分类 (1)分析图片 from PIL import Image img = Image.open('nums/ttt. ...
- libsvm使用说明
http://www.hankcs.com/ml/libsvm-usage.html libsvm使用说明 码农场 > 机器学习 2016-02-18 阅读(345) 评论(0) 目录 l ...
- LibSVM学习详细说明
代码文件主要针对Matlab进行说明,但个人仍觉得讲解的支持向量机内容非常棒,可以做为理解这一统计方法的辅助资料; LibSVM是台湾林智仁(Chih-Jen Lin)教授2001年开发的一套支持向量 ...
- 转自网络用LIBSVM进行回归预测的粗浅认识————————作者师梦
说一说我对用LIBSVM进行回归预测的粗浅认识(整理完成于2012年5.11) 作者 : 师梦 吾本工程小硕一枚,前用matlab建模,已然完成.某日,正沾沾自喜之际,吾师曰:“汝已为之 ...
- svm训练显示信息说明
现简单对屏幕回显信息进行说明: #iter 为迭代次数, nu 与前面的操作参数 -n nu 相同, obj 为 SVM 文件转换为的二次规划求解得到的最小值, rho 为判决函数的常数项 b ...
随机推荐
- 归档 SCP SFTP RSYNC(数据同步)
tar 选项 目标文件 源文件(1 2 3) tar cf **.tar file1 file2 file3 (默认情况下 cf选项只有归档没有压缩) tar xf 从归档中提取 创建tar的存档 ...
- Postgresql数据库的一些字符串操作函数
今天做项目遇到客户反映了一个麻烦的事情,有一些数据存在,但就是在程序中搜索不出来,后来分析,发现问题为数据前面有几个空白字符,后来用SQL查询了一下,发现八九个数据表中,数千万条数据中有将近三百万条数 ...
- Docker学习总结(13)——从零开始搭建Jenkins+Docker自动化集成环境
本文只简单标记下大概的步骤,具体搭建各个部分的细节,还请自行搜索.第一.二部分只是对Jenkins和Docker的简单介绍,熟悉的同学请直接跳到第三部分. 一.关于Jenkins Jenkins简介 ...
- Mysql怎么样避免全表扫描,sql查询优化
对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引: 尝试下面的技巧以避免优化器错选了表扫描: 使用ANALYZE TABLE tbl_name为扫 ...
- ASP.NET-HTML.Helper常用方法
Html.ActionLink方法 Html.ActionLink("linkText","actionName") Html.ActionLink(" ...
- angular-模块Module
模块定义了一个应用程序. 模块是应用程序中不同部分的容器. 模块是应用控制器的容器. 控制器通常属于一个模块. <div ng-app="myApp" runoob-dire ...
- HDU 1131
N个节点的不同的树的数目.这样 随便取一个节点作为根,那么他左边和右边的儿子节点个数就确定了,假定根节点标号为x,那么左子树的标号就从1到x-1,共x-1个,右子树的标号就从x+1到n,共n-x个,那 ...
- 【转载】linux下的usb抓包方法
1 linux下的usb抓包方法 1.配置内核使能usb monitor: make menuconfig Device Drivers --> ...
- 关于Servo项目中Rust代码行数的数据来源
我两个月之前的一篇博客<为什么我说Rust是靠谱的编程语言>(下面简称原文),在当中"6. 两个半大型成功案例"一节.我以前写道: Servo: 下一代浏览器渲染引擎( ...
- PE文件结构(三) 输入表
PE文件结构(三) 參考 书:<加密与解密> 视频:小甲鱼 解密系列 视频 输入表 输入函数,表示被程序调用可是它的代码不在程序代码中的,而在dll中的函数.对于这些函数.磁盘上的可执行文 ...