引文:常常在看paper的时候。就看到svm算法,可是要自己来写真的是难于上青天呀!

所幸有一个libsvm的集成软件包给我们使用,这真的是太好了。以下简介下怎么来使用它吧!

LIBSVM是一个集成软件包。提供支持向量机分类(C-SVC,nu-SVC),回归(epsilon-SVR,nu-SVR)以及分布预计(one-class SVM).工具包支持多类分类问题。LIBSVM是台湾大学林智仁(LinChih-Jen)副教授等开发设计的一个简单、易于使用和高速有效的SVM模式识别与回归的软件包。

1.libsvm的下载

libsvm下载

libsvm下载地址:http://www.csie.ntu.edu.tw/~cjlin/libsvm/

数据集下载地址 http://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/

说明:我自己是在windows下下载的,然后通过ftp软件将libsvm安装包上传到Linux下。

也能够在linux下使用wget来下载。

2.解压缩

解压缩到任一文件夹下,这里我解压到/home/xxxxxx/libsvm-2.91。/home/xxxxxx/是我的用户文件夹。xxxxxx是username。

tar –zxvf libsvm-3.20.tar.gz 

官网上提供了软件包及各种其他工具的下载。

3.编译

拿到软件包的第一件事就是阅读README,面对“读我……读我”这么热情的呼唤你难道无动于衷?

On Unix systems, type make' to build thesvm-train’ and `svm-predict’

programs. Run them without arguments to show the usages of them.

进入到/home/xxxxxx/libsvm-3.20。输入命令

make 

4.执行libsvm

下来解释一下libsvm的程序怎么用.你能够先拿libsvm 附的heart_scale来做输入,底下也以它为例,看到这里你应该也了解使用 SVM 的流程大概就是:

  • 1.准备数据并做成指定格式 (有必要时需 svmscale)
  • 2.用svmtrain来训练成 model
  • 3.对新的输入,使用 svmpredic来预測新数据的类别

4.1 svm-train

svmtrain 的语法大致就是:

svm-train [options] training_set_file [model_file]

training_set_file 就是之前的格式,而 model_file 假设不给就会叫[training_set_file].model.options 能够先不要给。

下列程序执行結果会产生 heart_scale.model 文件:(屏幕输出不是非常重要,沒有错误就好了)

执行代码:

./svm-train heart_scale

输出结果

======================

optimization finished, #iter = 219

nu = 0.431030

obj = -100.877286, rho = 0.424632

nSV = 132, nBSV = 107

Total nSV = 132

======================

5.2 svm-predict

svmpredict 的语法是 :

svm-predict  test_file model_file  output_file
  • (1)test_file就是我们要预測的数据,它的格式svmtrain的输入,也就是training_set_file是一样的,只是每行最前面的label能够省略(由于预測就是要预測那个label)。

    但假设test_file有label的值的话,predict完会顺便拿predict出来的值跟test_file里面写的值去做比对,这代表:test_file写的label是真正的分类结果拿来跟我们预測的结果比对就能够知道预測的效果。所以我们能够拿原training set当做test_file再丟给svm-predict去预測(由于格式一样),看看正确率有多高,方便后面调參数.其他參数就非常好理解了

  • (2)model_file就是svm-train出来的文件;

heart_scale.out:

执行代码

./svm-predict heart_scale heart_scale.model heart_scale.out

得到输出:

=====================================

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

Mean squared error = 0.533333 (regression)

Squared correlation coefficient = 0.532639(regression)

=====================================

Linux下libsvm的安装及简单练习的更多相关文章

  1. Linux下的GitHub安装与简单配置教程 ~ 转载

    Linux下的GitHub安装与简单配置教程   1.GitHub简介 Git是一个分布式版本控制系统,与其相对的是CVS.SVN等集中式的版本控制系统. 2.Git的安装 1)安装Git a.查看与 ...

  2. linux下expect环境安装以及简单脚本测试

    expect是交互性很强的脚本语言,可以帮助运维人员实现批量管理成千上百台服务器操作,是一款很实用的批量部署工具!expect依赖于tcl,而linux系统里一般不自带安装tcl,所以需要手动安装 下 ...

  3. Linux下rsync的安装及简单使用

    2018-09-25 15:39:04 一.RSYNC安装环境: centos6.5 iptables关闭和selinux为disabled 源码安装:到rsync官网下载rsync源码安装包,上传到 ...

  4. Linux下的GitHub安装与简单配置教程

    1.GitHub简介 Git是一个分布式版本控制系统,与其相对的是CVS.SVN等集中式的版本控制系统. 2.Git的安装 1)安装Git a.查看与使用 在ubuntu下可以使用如下命令进行查看系统 ...

  5. linux下的crontab安装及简单使用

    1.安装 # yum install vixie-cron # yum install crontabs # chkconfig crond on  #设为开机启动,先要安装chkconfig(yum ...

  6. 细说Linux下软件包的安装与管理

    一 源码安装方式      由于linux操作系统开放源代码,因而在其上安装的软件大部分也都是开源软件,例如apache.tomcat.php等软件.开源软件基本都提供源码下载,源码安装的方式:源码安 ...

  7. Linux 下编译、安装、配置 QT

    转自Linux 下编译.安装.配置 QT 注意:编译安装耗时费力,且很容易出错,要不断调整编译参数,不推荐使用,否则这将会是一个纠结痛苦的过程. 打算做嵌入式图像处理,计划方案嵌入式Linux+Ope ...

  8. Linux下tomcat的安装详解

    Linux下tomcat的安装详解 来源: ChinaUnix博客 日期: 2007.01.21 22:59 (共有0条评论) 我要评论 一,安装前的准备:1,Linux版本:我的是企业版.(至于红帽 ...

  9. Linux下zoopkeeper的安装和启动

    Linux下zoopkeeper的安装和启动 1.什么是zookeeper ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoo ...

随机推荐

  1. php打开错误日志

    ini_set("display_errors", "On"); error_reporting(E_ALL | E_STRICT);

  2. 定位所用的class

    方案 为解决类冲突,我们可以使用下述的方案定位一个class所在的位置 ClassName. package cn.j2se.junit.classpath; import static org.ju ...

  3. 二进制求和(LintCode)

    二进制求和 给定两个二进制字符串,返回他们的和(用二进制表示). 样例 a = 11 b = 1 返回 100 细节出了好多问题,提交了好多次... public class Solution { / ...

  4. Luogu P3178 树上操作(树链剖分+线段树)

    题意 见原题 题解 重链剖分模板题 #include <cstdio> #include <algorithm> using std::swap; typedef long l ...

  5. CUPOJ6242: LHC的二进制升级版

    6242: LHC的二进制升级版 时间限制:1秒 内存限制:128MB Special Judge 提交:6 正确:3 题目描述 在发现了3的二进制特殊性质后,LHC认为形如1.3.7.15..... ...

  6. [BZOJ3224]普通平衡树(旋转treap,STL-vector)

    3224: Tyvj 1728 普通平衡树 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 20328  Solved: 8979[Submit][St ...

  7. [Codeforces #190] Tutorial

    Link: Codeforces #190 传送门 A: 明显答案为$n+m-1$且能构造出来 #include <bits/stdc++.h> using namespace std; ...

  8. BZOJ 1066 [SCOI2007]蜥蜴(最大流)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1066 [题目大意] 在一个r行c列的网格地图中有一些高度不同的石柱,一些石柱上站着一些 ...

  9. 【枚举】【最小表示法】XVII Open Cup named after E.V. Pankratiev Stage 14, Grand Prix of Tatarstan, Sunday, April 2, 2017 Problem F. Matrix Game

    给你一个n*m的字符矩阵,将横向(或纵向)全部裂开,然后以任意顺序首尾相接,然后再从中间任意位置切开,问你能构成的字典序最大的字符串. 以横向切开为例,纵向类似. 将所有横排从大到小排序,枚举最后切开 ...

  10. java浏览器控件jxbrowser(简单demo模拟自动登录与点击)

    写在前面: 老大让我写个脚本自动给他写dms有一段时间了,说实话当时不知道老大指的这个脚本是什么?毕竟是做web的,难道是写个数据库sql语句脚本吗?也就放在了一边.巧了,最近一个朋友说他之前写了个程 ...