支持向量机libsvm实战入门

简介: 一、libsvm介绍    SVM支持向量机是目前比较流行的一种数据挖掘方法,能够处理较高维度,具体介绍可参考这篇博文:支持向量机通俗导论(理解SVM的三层境界)    LIBSVM是台湾大学林智仁(Lin Chih-Jen)教授等开发设计的一个简单、易于使用和快速有效的SVM模式识别与回归的软件包,他不但提供了编译好的可在Windows系列系统的执行文件,还提供了源代码,方便改进

一、libsvm介绍


    SVM支持向量机是目前比较流行的一种数据挖掘方法,能够处理较高维度,具体介绍可参考这篇博文:

支持向量机通俗导论(理解SVM的三层境界)

    LIBSVM是台湾大学林智仁(Lin Chih-Jen)教授等开发设计的一个简单、易于使用和快速有效的SVM模式识别与回归的软件包,他不但提供了编译好的可在Windows系列系统的执行文件,还提供了源代码,方便改进、修改以及在其它操作系统上应用;该软件对SVM所涉及的参数调节相对比较少,提供了很多的默认参数,利用这些默认参数可以解决很多问题;并提供了交互检验(Cross Validation)的功能。

    软件下载地址http://www.csie.ntu.edu.tw/~cjlin/libsvm/#java,最新版3.2.0

wKiom1VlXBGQSmtfAADkfg8Qg10210.jpg


    这里我们使用JAVA版本的,主要就是svm_scale,svm_train,svm_predict这三个程序,只要安装了JDK就可以使用如下命令运行

java -classpath libsvm.jar svm_scale +参数
java -classpath libsvm.jar svm_train +参数
java -classpath libsvm.jar svm_predict +参数

 wKioL1VoFvChSovIAADi5RsrthU219.jpg


二、数据准备

    LibSVM使用的数据格式为<label> <index1>:<value1> <index2>:<value2> …,label表示分类,index表示第几个变量/特征,软件官网已提供了大量符合数据格式要求的数据集供我们下载:

http://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/

 wKioL1VlYaaBn3gFAACfpDty0U4812.jpg

    下载其中名为usps的数据集,如图所示,该数据集分成了10类,训练样本7291,测试样本2007,属性(变量)256个

wKiom1VlaWTyZarxAAoU3aMLNaQ063.jpg


三、数据缩放(归一化)

svm-scale帮助提示

wKioL1Vla-TR4ZdgAADapvB9hJI976.jpg

归一化后的数据默认显示在控制台上所以我们要重定向到文件里保存


java -classpath libsvm.jar svm_scale -s   1.txt   usps  > scale

表示将usps训练集进行缩放(默认的规则),将缩放后的数据结果重定向输出到scale,并将这个缩放规则存储在1.txt中以便后面继续使用。

四、 训练并生成模型

svm-train帮助提示

wKioL1VlbsOC18FxAAQK5TpI7NA712.jpg


java -classpath libsvm.jar svm_train  scale  model

将归一化后的数据文件scale训练成模型保存在model文件中,训练过程如下

wKioL1VlcPPhwX4GAAIvA5nfUBk137.jpg

生成的模型文件如下所示:
wKioL1VlcdrBfG4MAAqFf_LenB4234.jpg


五、利用模型进行预测

svm_predict帮助提示

wKiom1VldTSBIU5qAACyM0aDeNw139.jpg


java -classpath libsvm.jar svm_predict  usps.t model output

利用第三步生成的模型对测试数据usps.t进行预测,预测结果保存在output文件中。

wKioL1VldH-zK-OjAABtzRbtBao146.jpg

生成的预测结果文件output中直接是测试集中每个样本的分类。

wKioL1VldhCR05ZLAAEBi8E34G4069.jpg




注:

svm_toy小程序

java -classpath libsvm.jar svm_toy

wKiom1Vla4_QBxpvAAAhalpXE6c626.jpg

弹出一个图形窗口自己可以在上面绘制不同颜色的点进行测试

wKioL1Vlbabis0HkAAD-xiWwI90820.jpg


注:

One Class SVM 是指你的training data 只有一类positive (或者negative)的data, 而没有另外的一类。在这时,你需要learn的实际上你training data 的boundary。而这时不能使用 maximum margin 了,因为你没有两类的data。 所以呢,在这边文章中,“Estimating the support of a high-dimensional distribution”, Schlkopf 假设最好的boundary要远离feature space 中的原点。
左边是在original space中的boundary,可以看到有很多的boundary 都符合要求,但是比较靠谱的是找一个比较 紧(closeness) 的boundary (红色的)。这个目标转换到feature space 就是找一个离原点比较远的boundary,同样是红色的直线。当然这些约束条件都是人为加上去的,你可以按照你自己的需要采取相应的约束条件,比如让你data的中心离原点最远。

wKioL1Vn5lnRKU_aAAPei3n5HXA081.jpg

 

参考文章:

http://www.tanglei.name/an-example-for-beginning-to-learn-libsvm/


别人翻译的README里面命令参数详解

http://blog.sina.com.cn/s/blog_4c38701d01011ept.html


libsvm 参数说明【中英文双语版本】

http://www.matlabsky.com/forum-viewthread-tid-12380-fromuid-18677.html


本文出自 “点滴积累” 博客,请务必保留此出处http://tianxingzhe.blog.51cto.com/3390077/1655672

目录
相关文章
|
7月前
|
机器学习/深度学习 算法 API
机器学习SVM算法入门
机器学习SVM算法入门
60 0
|
机器学习/深度学习
R语言实现逻辑回归模型
首先,本章节使用到的数据集是ISLR包中的Default数据集,数据包含客户信息的模拟数据集。这里的目的是预测哪些客户将拖欠他们的信用卡债务,这个数据集有1w条数据,3个特征
493 0
R语言实现逻辑回归模型
|
5月前
|
机器学习/深度学习 存储 算法
机器学习面试笔试知识点-线性回归、逻辑回归(Logistics Regression)和支持向量机(SVM)
机器学习面试笔试知识点-线性回归、逻辑回归(Logistics Regression)和支持向量机(SVM)
85 0
机器学习面试笔试知识点-线性回归、逻辑回归(Logistics Regression)和支持向量机(SVM)
|
机器学习/深度学习
【阿旭机器学习实战】【21】通过SVM分类与回归实战案例,对比支持向量机(SVM)3种SVM不同核函数
【阿旭机器学习实战】【21】通过SVM分类与回归实战案例,对比支持向量机(SVM)3种SVM不同核函数
【阿旭机器学习实战】【21】通过SVM分类与回归实战案例,对比支持向量机(SVM)3种SVM不同核函数
|
11月前
|
机器学习/深度学习 算法
|
机器学习/深度学习 数据处理
机器学习:一文从入门到读懂PCA(主成分分析)
机器学习:一文从入门到读懂PCA(主成分分析)
340 0
机器学习:一文从入门到读懂PCA(主成分分析)
|
机器学习/深度学习
机器学习原理与实战 | SVM(支持向量机)实践
机器学习原理与实战 | SVM(支持向量机)实践
125 0
机器学习原理与实战 | SVM(支持向量机)实践
|
机器学习/深度学习 算法
GBDT入门学习
决策树A decision tree is a machine learning model that builds upon iteratively asking questions to partition data and reach a solution.结点:feature分支:决策叶子:结果痛点:过拟合     即在validation dataset 上表现好,但在test data
GBDT入门学习
|
机器学习/深度学习 算法
ML之SVM:SVM算法的简介、应用、经典案例之详细攻略(三)
ML之SVM:SVM算法的简介、应用、经典案例之详细攻略
ML之SVM:SVM算法的简介、应用、经典案例之详细攻略(三)
|
机器学习/深度学习 算法 数据挖掘
ML之SVM:SVM算法的简介、应用、经典案例之详细攻略(一)
ML之SVM:SVM算法的简介、应用、经典案例之详细攻略
ML之SVM:SVM算法的简介、应用、经典案例之详细攻略(一)