设为首页 收藏本站
查看: 1378|回复: 0

[经验分享] libsvm与python的使用

[复制链接]

尚未签到

发表于 2015-4-24 07:31:29 | 显示全部楼层 |阅读模式
  由于课程和课题的原因,这两天试用了一下国立台湾大学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语言,也只知道这些了)

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-60087-1-1.html 上篇帖子: 冲刺豆瓣(15):python 经典练习题3 下篇帖子: 深入Python(四)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表