0.安装方法

unix系统下的安装方法:到官网下载源包(目前最新版本为libsvm-3.20、liblinear-1.96),解压后,打开终端进入makefile所在的目录,键入make即可。

以下为一些基本的使用命令,ubuntu系统下。


1.生成符合要求的数据格式,以图像数据为例

  1. 从图像库得到csv文件 (csv文件里每一行存储一张图:label,feat1,feat2,…..),在终端下键入:

    python gen_datafile.py
    

    注:gen_datafile.py是我自己写的一个python脚本,放在我的github

  2. 编译convert.c生成可执行文件 a.out,在终端下键入:

    gcc convert.c
    

    注:convert.c同样放在我的github

  3. 用上面得到的csv文件和a.out文件生成libsvm格式的文件, 在终端下键入:

    ./a.out csvfile > targetfile
    

    注:targetfile是存放最终数据的文件。


2.训练模型的命令

在终端下切换到目录liblinear-1.96或libsvm-3.20,然后键入以下命令,会提示具体用法:

./svm-train (liblinear为./train)
./svm-predict (liblinear为./predict)
./svm-scale (数据缩放)

3.tools中easy.py的使用

easy.py是一条龙服务,从data scaling到参数选取都帮你做。

需要先安装gnuplot,安装命令:

sudo apt-get install gnuplot-x11

之后键入:

python easy.py training_file [testing_file]

4.tools中grid.py的使用:

grid.py用于自动搜索参数。用法,在终端下键入:

pyhton grid.py [grid_options] [svm_options] dataset

要查看options的具体信息,可以先不带参数地键入 pyhton grid.py,这是libsvm的通用方法。


5.tools中subset.py的使用

subset.py用于分割数据集。用法:

Usage: subset.py [options] dataset subset_size [output1] [output2]This script randomly selects a subset of the dataset.options:
-s method : method of selection (default 0)0 -- stratified selection (classification only)1 -- random selection

例如要随机选取dataset中的2000个样本作为trainset,剩下的作为testset,则键人:

python subset.py  dataset 2000 trainset testset

6.tools中checkdata.py的使用

checkdata.py检查数据格式符不符合要求。键入:

python checkdata.py dataset

7.其他:

  • 使用交叉验证是不能生成model文件的?(我使用过程中发现不能,不知道是不是真的不能)

  • 训练完的结果解读(选自网友博文):

    optimization finished, #iter = 162nu = 0.431029obj = -100.877288, rho = 0.424462nSV = 132, nBSV = 107Total nSV = 132其中,#iter为迭代次数,nu 是你选择的核函数类型的参数,obj为SVM文件转换为的二次规划求解得到的最小值,rho为判决函数的偏置项b,nSV 为标准支持向量个数(0<a[i]<c),nBSV为边界上的支持向量个数(a[i]=c),Total nSV为支持向量总个数(对于两类来说,因为只有一个分类模型Total nSV = nSV,但是对于多类,这个是各个分类模型的nSV之和)。在目录下,还可以看到产生了一个train.model文件,可以用记事本打开,记录了训练后的结果。svm_type c_svc                     //所选择的svm类型,默认为c_svckernel_type rbf                       //训练采用的核函数类型,此处为RBF核gamma 0.0769231                   //RBF核的参数γnr_class 2                               //类别数,此处为两分类问题total_sv 132                           //支持向量总个数rho 0.424462                          //判决函数的偏置项blabel 1 -1                                 //原始文件中的类别标识nr_sv 64 68                           //每个类的支持向量机的个数SV                                          //以下为各个类的权系数及相应的支持向量1 1:0.166667 2:1 3:-0.333333 … 10:-0.903226 11:-1 12:-1 13:10.5104832128985164 1:0.125 2:1 3:0.333333 … 10:-0.806452 12:-0.333333 13:0.5………..-1 1:-0.375 2:1 3:-0.333333…. 10:-1 11:-1 12:-1 13:1-1 1:0.166667 2:1 3:1 …. 10:-0.870968 12:-1 13:0.5
    

libsvm和liblinear的使用总结相关推荐

  1. Libsvm和Liblinear的使用经验谈

    Libsvm和Liblinear都是国立台湾大学的Chih-Jen Lin博士开发的,Libsvm主要是用来进行非线性svm 分类器的生成,提出有一段时间了,而Liblinear则是去年才创建的,主要 ...

  2. LIBSVM和LIBLINEAR的优化

    前面介绍了LIBSVM和LIBLINEAR的优化算法,下面简单总结一下不同算法的应用场景吧: 所有线性问题都是用LIBLINEAR,而不要使用LIBSVM. LIBSVM中的不同算法,如C-SVM和n ...

  3. LIBSVM与LIBLINEAR

    原文链接: http://blog.chinaunix.net/uid-20761674-id-4840097.html 在过去的十几年里,支持向量机(Support Vector Machines) ...

  4. LIBSVM与LIBLINEAR详解

    LIBSVM与LIBLINEAR(一)   在过去的十几年里,支持向量机(Support Vector Machines)应该算得上是机器学习领域影响力最大的算法了.而在SVM算法的各种实现工具中,由 ...

  5. LIBSVM与LIBLINEAR(二)

    原文地址 模型与优化 LIBSVM和LIBLINEAR都提供了多种不同的模型供使用者选择,不同的模型有各自适用的场景.下面分别介绍LIBSVM和LIBLINEAR所提供的各种模型. LIBSVM 下面 ...

  6. 系统学习机器学习之SVM(三)--Liblinear,LibSVM使用整理,总结

    1.Libsvm与Liblinear区别,简单源码剖析. http://blog.csdn.net/zhzhl202/article/details/7438160 http://blog.csdn. ...

  7. liblinear libsvm

    LIBSVM与LIBLINEAR 对于多分类问题以及核函数的选取,以下经验规则可以借鉴: 如果如果特征数远远大于样本数的情况下,使用线性核就可以了. 如果特征数和样本数都很大,例如文档分类,一般使用线 ...

  8. LibLinear(SVM包)使用说明之(一)README

    LibLinear(SVM包)使用说明之(一)README LibLinear(SVM包)使用说明之(一)README zouxy09@qq.com http://blog.csdn.net/zoux ...

  9. Liblinear的使用

    Ubuntu下安装: http://pkgs.org/ubuntu-11.04/ubuntu-universe-i386/liblinear-tools_1.6+dfsg-1_i386.deb.htm ...

最新文章

  1. Safari 不能播放Video ,Chrome等可以 问题解决。
  2. GPU(CUDA)学习日记(十三)------ CUDA内存简介
  3. linux命令 su和sudo,Linux中sudo和su的区别
  4. 宕机了,Redis数据丢了怎么办?
  5. 电控 应用层开发 学习_阿里巴巴如何改善开发人员在 K8s 上的体验?
  6. Java 14 中令人期待的五大新特性!
  7. 31 岁的我为何会在创业成功后选择编程?
  8. 彻底分析ARP病毒查杀防范全攻略
  9. halcon学习资料
  10. DICOM worklist入门一
  11. MATLAB绘制统计折线图
  12. python根据经纬度画热力图_【python】使用python按照一定格式批量输出,地图热力图经纬度格式生成器...
  13. 【Unity3D实战】摇摆直升机开发实战(一)
  14. java校验身份证的合法性
  15. Python 跑深度学习遇到的一些问题集锦
  16. 重学计算机网络(二) - 曾记否,查IP地址
  17. bootstrap tooltip不起作用
  18. 鸿蒙系统怎么调用其他摄影头,鸿蒙分布式技术突破摄像头空间使用想象
  19. 【监控施工项目必备】
  20. java fms直播系统_FMS+OBS简单直播方案

热门文章

  1. concat、concatenate、add
  2. 为啥叫四川?是有四条河吗?
  3. Android多媒体开发-stagefright及AwesomePlayer相关知识梳理
  4. mac上一款定时休息提醒软件:stretchly mac
  5. IOMETER的简单使用
  6. hbase连接数据库
  7. Verilog VHDL三种建模描述方式——2选1数据选择器
  8. 用c#每日更换“必应背景图片”为“桌面壁纸”
  9. 飞机大战python小游戏
  10. 几张大数据可视化大屏界面设计