LIBSVM-3.21在python下的使用



本文源于SVM算法应用中实际遇到的问题。

算法实现的程序是按着麦好的《机器学习实践指南》自己敲的。



问题出现在第18行,找不到LibSvm这个库。


为了解决这个问题,进行了几个小时,一系列的尝试,终于。。。这个问题仍然没有解决,但是成功安装了libsvm,过程中还是遇到了很多问题,所以想和大家分享。


 


LIBSVM是台湾大学林智仁(LinChih-Jen)教授等开发设计的一个简单、易于使用和快速有效的SVM模式识别与回归的软件包,他不但提供了编译好的可在Windows系列系统的执行文件,还提供了源代码,方便改进、修改以及在其它操作系统上应用;


首先推荐林智仁教授的学习网站LIBSVM -- A Library for Support Vector Machines


http://www.csie.ntu.edu.tw/~cjlin/libsvm/index.html#nuandone


在安装libsvm之前首先要安装好pythongnuplot命令行的交互式绘图工具)


我计算机的环境是win764位),python2.732位)


1.从上面网址下载的gnuplot安装位置C:\ProgramFiles\gnuplot


2.从上面网址下载的DownloadLIBSVM处下载的libsvm解压在C盘根目录下C:\libsvm-3.21\libsvm-3.21无需安装。里面包含Javamatlibpython的文件,我们选择python


3.C:\libsvm-3.21\libsvm-3.21\tools中的easy.pygrid.py中修改gnuplot的路径(可用记事本、wordsublime text打开),将self.gnuplot_pathname设置为自己gnuplot.exe的路径。


我的路径是:self.gnuplot_pathname = r'C:\Program Files\gnuplot\bin\gnuplot.exe',修改后保存。


4.连接pythonlibsvm


首先查看python版本(32 or 64),在网上查了一些方法,说32位比较容易,直接在C:\libsvm-3.21\libsvm-3.21\windows中找到libsvm.dll将添加到系统目录C:\Windows\System32中即可。若为64位的,则比较繁琐,需要首先自己编译64位的动态链接库libsvm.dll。我是32位,尝试后发现还是不可以。



后来在令一篇博客中找到了答案。libsvm-3.21是默认64位编译的,如果你的Python32位,请先修改C:\libsvm-3.21\libsvm-3.21中的makefile.win(不是makefile)中的CFLAGS =/nologo /O2 /EHsc /I. /D _WIN64 /D _CRT_SECURE_NO_DEPRECATE,将其中的D_WIN64改成D_WIN32


4.Visual Studio Win32Command Prompt(2010)vs命令行工具)进行编译,我的电脑安装了visual studio 2010,打开vs,在工具中并没有找到,原来是需要自己添加。工具”->“外部工具,点击右上方添加”->“确定



内容填写如下,参数一栏前面是自己vs的安装路径,直到vsvars32.bat确定



然后会在工具中看到Visual Studio 2010 Command Prompt



单击打开,因为我的安装路径是这样的,所以如下图所示。



我们要先进入libsvm中,用cd..退到上一层,用C:定位到c盘,进入libsvm目录进行编译。



这时libsvm的文件将进行重新编译。
然后将新生成的C:\libsvm-3.21\libsvm-3.21\windows下的libsvm.dll拷贝到C:\windows\system32目录下。这时libsvm就可以使用了。


5.测试



测试成功。


 


*虽然还是没有解决最初的问题,但还有有一点点收获。其间参考了很多博客,感谢大家的分享。本文没有涵盖所有的情况,只是根据自己的软件版本和具体情况而言。文中的截图是自己测试过程中的截图,测试有效。对于我最初的问题,希望大家可以帮忙解决,谢谢。(之前安装了mlpy库,现在安装了libsvm,但mlpy.libsvm()无法使用,现在安装的libsvm应该与mlpy库无关)


  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值