Python 之 LIBSVM下的简单使用

1)从python官网上下载windows下的安装包python-2.7.3.msi并安装

2)打开IDLE(python GUI),输入

>>>import sys

>>>sys.version

如果你的python是32位,将出现如下字符:

‘2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)]’

这个时候LIBSVM的python接口设置将非常简单。在libsvm-3.16文件夹下的windows文件夹中找到动态链接库libsvm.dll,将其添加到系统目录,如`C:\WINDOWS\system32\’,即可在python中使用libsvm

3)如果你的python是64位的,也就是说打开IDLE(python GUI),输入

>>>import sys

>>>sys.version

出现如下字符:

‘2.7.3 (default, Apr 10 2012, 23:24:47) [MSC v.1500 64 bit (AMD64)]‘

这时你需要首先自己编译64位的动态链接库libsvm.dll。方法如下:

在程序列表中的Microsoft Visual Studio 2010/Visual Studio Tools下找到Visual Studio x64 Win64 Command Prompt(2010),注意一定要是64位的command prompt

cd到LIBSVM所在文件夹libsvm-3.16

输入nmake -f Makefile.win clean all

这时libsvm-3.16的windows目录下将生成64位的动态链接库。将新生成的libsvm.dll复制到系统目录(例如`C:\WINDOWS\system32\‘)即可。

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

================================牛逼闪闪的分割线================================

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

4)简单SVM操作直接照此步骤实现。

打开IDLE

>>>import os

>>>os.chdir(‘C:\Program Files\libsvm-3.16\python’)

>>>from svmutil import *

>>> y, x = svm_read_problem(‘../heart_scale’)

>>> m = svm_train(y[:200], x[:200], ‘-c 4’)

>>> p_label, p_acc, p_val = svm_predict(y[200:], x[200:], m)

5)python接口的说明

在libsvm-3.16的python文件夹下主要包括了两个文件svm.py和svmutil.py。

svmutil.py接口主要包括了high-level的函数,这些函数的使用和LIBSVM的MATLAB接口大体类似

svmutil中主要包含了以下几个函数:

svm_train()        : train an SVM model

svm_predict()      : predict testing data

svm_read_problem() : read the data from a LIBSVM-format file.

svm_load_model()   : load a LIBSVM model.

svm_save_model()   : save model to a file.

evaluations()      : evaluate prediction results.

svm.py接口主要包括了一些low-level的应用。在svm.py中采用了python内置的ctypes库,由此python可以直接访问svm.h中定义的C结构和接口函数。svm.py主要运用了四个数据结构svm_node, svm_problem, svm_parameter和svm_model。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-12-19 06:13:18

Python 之 LIBSVM下的简单使用的相关文章

win10环境下python版libsvm的安装

1.前言 由于毕业设计需要用到libsvm,所以最近专心于配置libsvm,曾经尝试过在matlab中安装,但是没有成功.最终在Python环境中完成安装. 2.LIBSVM介绍 LIBSVM 是台湾大学林智仁(Lin Chih-Jen)教授等开发设计的一个操作简单.易于使用.快速有效的 SVM 软件包.可以解决分类问题(包括 C-SVC.n-SVC ).回归问题(包括 e-SVR.n-SVR )以及分布估计(one-class-SVM)等问题,提供了线性.多项式.径向基和 S 形函数四种常用的

详解 Python 中的下划线命名规则

在 python 中,下划线命名规则往往令初学者相当 疑惑:单下划线.双下划线.双下划线还分前后……那它们的作用与使用场景 到底有何区别呢?今天 就来聊聊这个话题. 1.单下划线(_) 通常情况下,单下划线(_)会在以下3种场景中使用: 1.1 在解释器中: 在这种情况下,“_”代表交互式解释器会话中上一条执行的语句的结果.这种用法首先被标准CPython解释器采用,然后其他类型的解释器也先后采用. >>> _ Traceback (most recent call last): Fil

Python 之 LIBSVM 使用小结(三)

准备数据:一种方法是通过svm_read_problem方法直接读取libsvm格式的文件,返回分类标签([])和数据([[]]).如:labels, datas =svm_read_problem('filename') ,还有一种方法是直接python格式的,这种方法适用于在程序执行过程中动态产生的data,我要用到的就是这种,没必要把大量的数据都写入文件(这两天搞infominer算法挖掘序列数据模式并看预测效果是个苦力活呀).python的libsvm处理数据也分为两种,一种是特征值连续

Python中关于txt的简单读写模式与操作

Python中关于txt的简单读写操作 常用的集中读写模式: 1.r 打开只读文件,该文件必须存在. 2.r+ 打开可读写的文件,该文件必须存在. 3.w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失.若文件不存在则建立该文件. 4.w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失.若文件不存在则建立该文件. 5.a 以附加的方式打开只写文件.若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留. 6.a+ 以附加方式

python基于mysql实现的简单队列以及跨进程锁

在我们做多进程应用开发的过程中,难免会遇到多个进程访问同一个资源(临界资源)的状况,必须通过加一个全局性的锁,来实现资源的同步访问(同一时间只能有一个进程访问资源). 举个例子: 假设我们用mysql来实现一个任务队列,实现的过程如下: 1. 在Mysql中创建Job表,用于储存队列任务,如下: create table jobs( id auto_increment not null primary key, message text not null, job_status not null

python爬虫(下)--模拟登录与Captcha识别

前言 之前在 python爬虫(上)–请求--关于模拟浏览器方法,中我挖了一个坑,时隔一个多月,趁着最近有点空,我想是时候填填坑了,总结总结了,不然真的就忘了 验证码 虽然之前挖坑的那篇已经说了一些,现在还是稍微说一说. 在模拟登录中,其实让写爬虫的人疼头就是验证码,只要能破掉验证码,那么登录不是问题. 验证码(Chaptcha)内容从英文字符和数字识别,到数字加减乘除,再到汉字的出现,后面还有12306的看图识别,到现在的新型的基于人的行为的谷歌的reCaptcha,验证码也是经历了很长时间的

python写的第一个简单小游戏-猜数字

1 #Filename:game1.py 2 3 guess=10 4 running=True 5 while running: 6 try: 7 answer=int(raw_input('Guess what i think:')) 8 except: 9 print 'Please input interga\n' 10 continue 11 12 if answer<guess: 13 print 'Your answer is too small\n' 14 continue 15

python爬虫的一个常见简单js反爬

python爬虫的一个常见简单js反爬 我们在写爬虫是遇到最多的应该就是js反爬了,今天分享一个比较常见的js反爬,这个我已经在多个网站上见到过了. 我把js反爬分为参数由js加密生成和js生成cookie等来操作浏览器这两部分,今天说的是第二种情况. 目标网站 列表页url:http://www.hnrexian.com/archives/category/jk. 正常网站我们请求url会返回给我们网页数据内容等,看看这个网站返回给我们的是什么呢? 我们把相应中返回的js代码格式化一下,方便查

(1)Jenkins Linux环境下的简单搭建

(1)Jenkins Linux环境下的简单搭建 Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. ----百度百科 这是一款基于Java开发的工具.种种原因,最近刚开始接触,决定研究一下.Jenkins的搭建方法不止一种,一下就是个人总结的其中一种,文章内容比较浅显,不足之处,欢迎指正. 首先,所需要准备的工具JDK.Maven.资料上显示JDK版本最好高于1.7,并没有研究1.7以下版本,所谓"没有实际调研,就没有发言权",在此就不做过多