libSVM 简易使用手册

关于SVM的基础理论知识,可以google这篇文章《SVM的八股简介》,讲解得生动有趣,是入门的极好教材。作为拿来主义者,我更关心怎么用SVM,因此瞄上了台湾林智仁教授提供的libSVM。我把自己的使用过程记录下来,感觉按照下面的步骤,傻瓜应该也可以用SVM了。

1. 相关程序的下载、安装

总共要下载libsvm,python,gnuplot三个程序。

1.1 libsvm:到http://www.csie.ntu.edu.tw/~cjlin/libsvm/ 下载,我用的是libsvm-3.12.zip,下载后直接解压缩到任意位置,我解压到E:\Codes\libsvm-3.12下。

1.2 python:到http://www.python.org/download/ 下载(该地址可能需要FQ),我下的是python-2.7.3.msi,双击该文件安装到默认位置,我安装到C:\Python27下。将该路径添加到系统环境变量中。添加方法:右键点击 我的电脑 -> 属性 -> 高级系统设置 -> 环境变量,在 系统变量 里找到 path, 点击 编辑,在弹出框最后加上 C:\Python27;(注意用分号与之前的项隔开) 之后重启电脑。

1.3 gunplot:到http://www.gnuplot.info/ 下载,我下的是gp460-win32-setup.exe,双击该文件安装到默认位置,我安装到C:\Program Files\gnuplot下。

2. 生成训练数据和测试数据,分别存为train和test两个文本文件,拷贝到libsvm-3.12\tools下。下一篇博文我会讲怎样结合opencv生成libSVM格式的数据。

3. 进入libsvm-3.12\tools下,用写字板打开easy.py,将里面gnuplot_exe = 后的路径改为gnuplot的安装路径,对于我的情况:

gnuplot_exe = r"C:\Program Files\gnuplot\bin\pgnuplot.exe"。同样,用写字板打开grid.py,修改gnuplot_exe = r"C:\Program Files\gnuplot\bin\pgnuplot.exe"。修改这两个文件时都要注意,要修改else下的gnuplot_exe,而不是if not is_win32下的。另外要注意,如果修改完后easy.py或grid.py默认打开程序变成了写字板,要把它改回成python.exe

4. 在命令行cd到该路径libsvm-3.12\tools下,命令行输入 python easy.py train test,敲回车,程序会自动执行scale,参数寻优,生成svm模型train.model,用该模型对test数据进行预测,并给出准确度。

下面附上我命令行的截图

可以看到,程序自动选择的最优参数 c=32.0, g=0.5,在测试集上准确率为62%

时间: 2024-10-15 01:32:55

libSVM 简易使用手册的相关文章

Git简易参考手册

如果用过mercury(HG),那么理解Git的运作方式就轻松多了.两者是相同的分布式版本管理工具,只是某些功能有着细微的差别 - Git的管理粒度更加细腻,因此操作上也比HG复杂一点.例如,修改文件并提交,hg会自动跟踪到,并不需要你去手动add,但是在git里,无论新增还是修改,都必须add相应的文件才可以commit.这样概念上可以保持一致性(计算机的美学). 安装和创建版本库: sudo apt-get install git 创建全新仓库: mkdir new_repo cd new_

Docker简易使用手册

1. Docker介绍 Docker中文社区文档 Docker 是一个开源的软件部署解决方案. Docker 包括三个基本概念: 镜像(Image) Docker的镜像概念类似于虚拟机里的镜像,是一个只读的模板,一个独立的文件系统,包括运行容器所需的数据,可以用来创建新的容器. 例如:一个镜像可以包含一个完整的 ubuntu 操作系统环境,里面仅安装了MySQL或用户需要的其它应用程序. 容器(Container) Docker容器是由Docker镜像创建的运行实例,类似VM虚拟机,支持启动,停

如何借助测试经验图谱完成三个月总结?

一 我们组所有新员工在入职三个月的时间点,都会要求做一个阶段性总结,然后就总结的内容,我会找他作个面谈. 从目前所有人总结的内容来看,千差万别,虽然我们有规定总结的范围,比如「客观.量化及可视的工作成果」,但是每个人对这个范围的理解都不一样,所以结果也就不一样了. 如果非要找共同点的话,那就是大家都会去罗列工作的内容,比如熟悉了多少个工具,经历了多少个项目,提交了多少个 Bug 等等. 非要说这样写有没有问题,其实也没问题,确实有量化的工具数,也有量化的项目数,还有量化的 Bug 数. 但还是差

2020前端面试汇总

?01 前言 工作了这么久,一直没有自己的一个技术知识沉淀,这一次去找了很多前端面试题,再加上自己的工作经验,进行一次汇总,强烈要求自己掌握以下内容,不仅要知其然,还要知其所以然.让自己以后在面试或者工作中做到"心中有佛,不虚场合". 02 目录 下面是这篇文章的目录结构,一般比较简单的问题我就一笔带过了,主要是分享一下比较有难度的知识点,答案来自网上,如果有版权问题我会删除.还有本文只是给出一个大概的知识点,如果想要深入学习还要靠自己去查一下哦! 如果答案有错误,欢迎指正! 计算机基

informatica安装简易手册

准备 1.环境 win7 64位 ,已经安装好Oracle 11G,下载informatica 9.5.1 2.软件下载 地址:https://login.oracle.com/mysso/signon.jsp,没有账号可以自己注册一个Oracle账号. 下载的时候根据提示进行即可,需要注意的地方如下: 1.版本选择: 输入informatica,选择informatica PowerCenter,如下: 选择系统平台Select Platform,根据自己的情况选择Linux或Windows或

从0到1简易区块链开发手册V0.2-创建钱包

1.概念 创建钱包其实就是创建比特币地址,在比特币世界中,没有账户概念,不需要也不会在任何地方存储个人数据(比如姓名,×××件号码等).但是,我们总要有某种途径识别出你是交易输出的所有者(也就是说,你拥有在这些输出上锁定的币),这就是比特币地址(address)需要完成的使命. 关于钱包这个概念,我个人觉得imtoken在用户引导那部分写得很清楚,此处将链接给到大家,有兴趣的可以去看看 https://www.cnblogs.com/fangbei/p/imToken-clearance.htm

从0到1简易区块链开发手册V0.3-数据持久化与创世区块

1.BoltDB简介 Bolt是一个纯粹Key/Value模型的程序.该项目的目标是为不需要完整数据库服务器(如Postgres或MySQL)的项目提供一个简单,快速,可靠的数据库. BoltDB只需要将其链接到你的应用程序代码中即可使用BoltDB提供的API来高效的存取数据.而且BoltDB支持完全可序列化的ACID事务,让应用程序可以更简单的处理复杂操作. 其源码地址为:https://github.com/boltdb/bolt 2.BoltDB特性 BoltDB设计源于LMDB,具有以

从0到1简易区块链开发手册V0.4-实现转账交易的思路分析

六.转账交易 创世区块创建完毕之后,按照我们的正常思路,是继续创建新的区块,并加入至区块链中,没错,这确实是学习路线,但是我们首先来了解一个区块是如何生成的,转账交易 ===>打包交易 ===>工作量证明 ===>生成区块 在上文,我们提到了钱包地址这个概念,我们一般可以简单将钱包地址理解为一个银行账户,那么交易也就可以理解为是地址与地址之间的转账过程. 因为这部分内容非常重要,设置可以说交易就是比特币原理的核心,所以,为了保证大家对概念有充分的了解,本章节的理论描述部分此处摘录liuc

从0到1简易区块链开发手册V0.5-实现余额查询

七. 查询余额 其实这个章节的一些知识点在转账交易那一章节均有所涉及,所以,查询余额这个功能相对而言比较简单,只要熟悉了UTXO模型,加上对交易流程的了解之后,对查询余额基本上已经有了思路. 1.命令行代码 func (cli *CLI) GetBalance(address string) { bc := GetBlockChainObject() if bc == nil { fmt.Println("没有BlockChain,无法查询..") os.Exit(1) } defer