`
endual
  • 浏览: 3558438 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

libsvm与python的使用

    博客分类:
  • SVM
 
阅读更多

libsvm与python的使用

由于课程和课题的原因,这两天试用了一下国立台湾大学Chih-Chung Chang和Chih-Jen Lin编写的libsvm函数库,发现的确是一款写得很不错的软件,而且上手也比较容易,用了一个晚上的时间基本搞定了libsvm的基本用法以及它和 python的接口,以下的内容均基于win32系统,尚未在Linux下尝试过。

首先我们需要下载libsvm,最新版是11月17日刚推出的libsvm2.83,可以在libsvm的主页http://www.csie.ntu.edu.tw/~cjlin/libsvm/ 上下载得到,建议同时下载一个libsvm的初学者guide,写得很不错,浅显易懂,适合初学者使用,基本的使用只需要libsvm这一个软件即可,但如果需要使用它自带的python脚本的话,还需要安装python,最新版是2.5,可以在python的主页http://www.python.org 上下载。另外,libsvm自带的两个脚本grid.py和easy.py中均用到了绘图工具gnuplot,因此还需要下载一个gnuplot软件,下载地址:ftp://ftp.gnuplot.info/pub/gnuplot/ ,注意要下载win32版本的,比如win32的4.0版本对应的文件应为gp400win32.zip。

下载完成后,接下来就是安装。其中只有python2.5需要安装(一般默认安装到c:\python25下),将libsvm解压到c: \libsvm下,将gnuplot解压到c:\gnuplot下。将c:\python25,c:\libsvm\windows,c: \gnuplot\bin三个文件夹添加到系统路径里面,方便日后使用。

安装完毕后,进入c:\libsvm\tools目录下,用文本编辑器(记事本,edit都可以)修改grid.py和easy.py两个文件,找 到其中关于gnuplot路径的那项,根据实际路径进行修改,并保存。然后我们可以下载guide文章里提到的那三个数据集作为实验数据集,也将其放在 tools目录下,在libsvm\tools下执行以下命令检验效果:

    python easy.py train.1 test.1

如果弹出了gnuplot的窗口并可以看到动态的绘制图形的过程,那么恭喜你,实验成功!最后输出的结果应该和guide文章里提到的结果类似(当 然c和g的值有可能并不和文章里的相同,但最后在测试集上的错误率应该相差不大)。执行的过程中可能防病毒软件会弹出提示说rootshell之类的警 告,不必理会。

接下来我们研究一下libsvm和python的接口的问题,这个问题我自己也困扰了很久。首先,按照libsvm\python目录下的 readme文件所说,在win32环境下,我们要编译得到svmc.dll这个文件(细心的人会发现,libsvm已经在\libsvm \windows\python目录下自带了这个文件,但它可能是为其它的python版本编译的,为保险起见,我们尝试重新编译它),在libsvm目 录下键入如下命令(以vs.net2003为例,其它版本的c++编译器可能需要略微修改):

    vcvars32

这个文件在C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin\下,请确保这个路径在你的系统路径里面。此命令设置了VC++的环境变量。

键入以下命令:

    nmake -f Makefile.win python

并将生成的libsvm\windows\python\svmc.dll文件复制到libsvm\python目录下,并改名svmc.pyd(非常重要!)。

在libsvm\python目录下键入以下命令以检验效果:

    python svm_test.py

如果能看到程序执行结果,说明libsvm和python之间的接口已经配置完成,以后就可以直接在python程序里调用libsvm的函数了!

转自:http://yaowt.spaces.live.com/blog/cns!7280d7d3cc41a4ab!564.entry

如果你要用easy.py的话

1.下载libsvm

2.下载pathon。因为libsvm下载后的easy.py不能直接操作,需要python语言的支持

可以去http://www.python.org/ 或去网上搜索一下,默认安装

3.下载pgnuplot,一般大家下载的都是一个gp373w32文档,里面有直接可执行的pgnuplot.exe,不用安装。(以前在网上看 到的步骤都是“安装pgnuplot”这样的句子,让我这个菜鸟想了好久怎么把它安装到机子上,笨!)libsvm是用他完成绘图的

4.修改pgnuplot在grid.py中的路径(easy.py在执行的过程中要调用grid.py的)

,默认的gnuplot_exe = r"c:\tmp\gp373w32 \pgnuplot.exe",用ULtraEdit打开grid.py,修改成你自己pgnuplot.exe的路径

5.libsvm是在DOS环境中工作的,所以打开命令提示符,我的方法比较笨,先修改路径名到easy.py和grid.py所在的文件夹下,例如d:\livsvm\python

然后输入:c:\python23\python easy.py heart_scale 就可以了

上面我写的都没有说版本问题,因为libsvm好象有版本 兼容问题,一般如果用python24不行的话就把python24换成python23,如果还不行的话而你又是XP系统的话,换个别的机子换个系统试试,我曾经把各种组合试了一遍,才得出的吐血经验!

另外:如果还是不行的话,建议你在easy.py和grid.py中加入一些简单的输出语句看看是哪里的问题,python语言的输出语句很简单 如:在觉得有问题的句子前面加上 print '1',后面加上一句 print '2',看看是否1,2都能输出(不懂python语言,也只知道这些了)

分享到:
评论

相关推荐

    libsvm的 Python 库包

    - `libsvm`的Python接口允许用户使用Python语言方便地调用SVM模型。 - 提供了数据预处理、模型训练、预测等功能,简化了SVM的使用流程。 6. **使用示例** - 用户可以通过导入`svm`模块,创建`SVC`或`SVR`对象,...

    LIBsvm在Python中的安装

    **原因分析**:这通常是由于下载的LIBsvm版本与当前使用的Python版本不兼容导致的。 **解决方法**: - **查找合适的.whl文件**:访问https://www.lfd.uci.edu/~gohlke/pythonlibs/,根据您的Python版本查找相应的...

    Python下的LibSVM的使用

    - **svmutil.py** 包含了一系列高级函数,这些函数的使用与 LibSVM 的 MATLAB 接口相似。主要包括: - `svm_train()`: 用于训练 SVM 模型。 - `svm_predict()`: 用于预测测试数据。 - `svm_read_problem()`: 读取...

    python中使用libsvm库64位libsvm.dll文件

    python中使用libsvm库64位libsvm.dll文件.在64位系统下需要在C:\WINDOWS\system32\目录中放入此文件才运行成功demo演示。

    libsvm-weights-3.22.rar_LibSVM_python工具箱

    6. **使用LibSVM**:在Python程序中,你可以导入`svm`模块来创建、训练和预测模型。例如,加载数据集,定义核函数,训练模型,然后对新数据进行预测。 ```python from sklearn import datasets from svmutil import...

    libsvm-2.88.rar_Libsvm2.88_libsvm Python_libsvm java_python libs

    在LibSVM 2.88中,对于Python用户,它提供了一个简洁易用的接口,使得在Python环境中进行SVM模型训练和预测变得简单。通过`import libsvm`,用户可以快速地加载数据,构建模型,并进行预测。此外,LibSVM还支持多...

    libSvm使用方法基于python

    本文旨在详细介绍如何在 Python 环境下使用 `libSVM` 进行模型训练与预测,并通过具体的步骤演示整个过程。 #### 二、环境搭建 1. **Anaconda 安装** - 首先,下载并安装 Anaconda 至指定位置,例如 `E:\Anaconda...

    基于python使用LibSVM实现验证码识别

    在本教程中,我们将探讨如何使用Python编程语言和LibSVM(一个流行的SVM库)来实现这一功能。SVM,即支持向量机(Support Vector Machine),是一种强大的机器学习模型,尤其适用于分类问题,如验证码识别。 首先,...

    libsvm python版安装包

    安装python版的libsvm,具体参照http://blog.csdn.net/m624197265/article/details/41894261就可以了

    libsvm工具包,兼容Python2.7

    **安装与使用** 要在Python 2.7环境中安装libsvm,用户可以通过命令行运行以下命令: ```bash pip install libsvm-3.21-cp27-none-win_amd64.whl ``` 安装完成后,用户可以导入`pylibsvm`模块,按照libsvm的API来...

    python3.4 64位 libsvm

    在libsvm-3.16的python文件夹下主要包括了两个文件svm.py和svmutil.py。 svmutil.py接口主要包括了high-level的函数,这些函数的使用和LIBSVM的MATLAB接口大体类似 svmutil中主要包含了以下几个函数: svm_train...

    libsvm python svm库

    6. **安装与使用**:在Python环境中,用户可以通过pip安装`scikit-learn`库,其中已经集成了LIBSVM的功能。或者,也可以直接下载LIBSVM源码并配置环境,手动导入库文件。 7. **模型优化**:LIBSVM库提供了参数调优...

    如何使用libsvm进行分类

    libsvm(Library for Support Vector Machines)是一个广泛应用于机器学习领域的开源软件库,主要用于支持向量机(SVM)的建模与预测。SVM是一种强大的分类和回归工具,它能够处理线性和非线性问题,并在许多领域如...

    windows下安装libsvm的全部软件(libsvm-2.9、python-2.6、gp373w32),应用指导

    在Python环境中,你可以通过`import svm`来使用libsvm的功能。 再者,gp373w32可能指的是gfortran的32位版本。gfortran是GCC的一部分,用于编译Fortran代码。在某些情况下,libsvm的编译可能依赖于Fortran编译器,...

    libsvm3.18库加上python测试代码c++测试代码,以及破解验证的实现

    LibSVM不仅提供了C/C++接口,还支持Python绑定,使得Python开发者可以方便地在Python环境中使用SVM。Python接口通常通过swig工具生成,允许用户直接在Python脚本中调用SVM的训练和预测函数,简化了机器学习流程。 *...

    多分类python代码_libsvm多分类_模式识别分类_多分类_

    本主题聚焦于使用Python编程语言和libsvm库来实现多分类算法,特别是针对模式识别问题。 libsvm(Library for Support Vector Machines)是由Chih-Chung Chang和Chih-Jen Lin开发的开源工具,它提供了广泛的支持...

    LIBSVM python

    在Python中使用LIBSVM,首先需要安装相应的库。通常,我们可以使用pip来安装,命令如下: ``` pip install scikit-learn ``` 虽然名为scikit-learn,但这个库包含了对LIBSVM的封装。然后,我们可以通过sklearn的svm...

    使用libsvm数据分类

    python3 编写的使用libsvm包进行数据分类训练以及预测等,包含了一份训练数据、测试数据以及数据格式转换的代码

Global site tag (gtag.js) - Google Analytics