如何利用python使用libsvm

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何利用python使用libsvm相关的知识,希望对你有一定的参考价值。

参考技术A 一:libsvm包下载与使用:


1.

把包解压在C盘之中,如:C:\libsvm-3.18

2.

因为要用libsvm自带的脚本grid.py和easy.py,需要去官网下载绘图工具gnuplot,解压到c盘

3.

进入c:\libsvm\tools目录下,用文本编辑器(记事本,edit都可以)修改grid.py和easy.py两个文件,找到其中关于gnuplot路径的那项,根据实际路径进行修改,并保存

4python与libsvm的连接(参考SVM学习笔记(2)LIBSVM在python下的使用 )

a.打开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

b.如果你是64位的请参考文献,请参考上述连接。

5.执行一个小例子

import os

os.chdir('C:\libsvm-3.18\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)

##出现如下结果,应该是正确安装了

optimization finished, #iter = 257

nu = 0.351161

obj = -225.628984, rho = 0.636110

nSV = 91, nBSV = 49

Total nSV = 91

Accuracy = 84.2857% (59/70) (classification)

如何在 windows 7 下为 python 安装 libsvm?

【中文标题】如何在 windows 7 下为 python 安装 libsvm?【英文标题】:How do I install libsvm for python under windows 7? 【发布时间】:2012-10-04 08:06:00 【问题描述】:

想知道

我下载了 livsvm zip,但我不理解其中的说明。我已将 libsvm.dll 放在我的 c:\windows\system32 目录中,但是当我尝试时

import svmutil

from svm import *

我明白了

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "svmutil.py", line 3, in <module>
    from svm import *
  File "svm.py", line 16, in <module>
    '../windows/libsvm.dll'))
  File "C:\Python27\lib\ctypes\__init__.py", line 365, in __init__
    self._handle = _dlopen(self._name, mode)
WindowsError: [Error 126] The specified module could not be found

【问题讨论】:

这个链接会让安装更清晰***.com/questions/12877167/… 这个链接***.com/questions/12877167/…安装会很清楚 【参考方案1】:

已解决: 1.导航到http://www.lfd.uci.edu/~gohlke/pythonlibs/#libsvm 2.下载对应你操作系统的libsvm的.whl文件。 3. 打开命令提示符并导航到包含下载的 .whl 文件的文件夹。 4. 在命令提示符下输入以下命令-pip install libsvm-3.20-cp27-none-win32.whl

注意:在 pip 安装后键入 .whl 文件的名称

【讨论】:

在 Windows 10 上,这是有效的。我没有调试为什么上述方法不起作用,但这很容易。【参考方案2】:

我在 Windows 7 和 libsvm 3.18 上也遇到了很多问题,上述解决方案都没有奏效。无论我尝试什么文件路径体操,它都找不到或不喜欢../windows/libsvm.dll 文件。我也遇到了 32 位和 64 位的不兼容问题(我的 python 是 64 位的)。

我为尝试从 Visual Studio 重新编译的痛苦做好了准备,但这最终是不必要的。最终对我有用的是简单地安装 scikit-learn,它包含 libsvm 并很好地包装在里面 (http://scikit-learn.org/stable/index.html)。

如果您像我一样使用 Anaconda 发行版,这将非常轻松。只需在命令行输入conda install scikit-learn

然后你可以import sklearn.svm.libsvm as svm 并像调用 libsvm 一样调用它,如果你想忽略 scikit-learn 的其他方面。它只是工作。

【讨论】:

【参考方案3】:

我发现在 Windows 上安装 libSVM 以及其他 Python 库的最佳方法是使用非官方的 Windows 二进制文件,此处:

http://www.lfd.uci.edu/~gohlke/pythonlibs/#libsvm

此页面为 Python 编程语言的官方 CPython 发行版提供了许多科学开源扩展包的 32 位和 64 位 Windows 二进制文件。

大多数二进制文件都是从 PyPI 或项目公共修订控制系统中的源代码构建的。源代码更改(如果有)已提交给项目维护者或包含在包中。

许多二进制文件依赖于 Numpy-MKL 1.8 和/或 Microsoft Visual C++ 2008(64 位或 32 位,用于 CPython 2.6 到 3.2)或 Visual C++ 2010(64 位或 32 位,用于 CPython 3.3 和 3.4)可再发行包。

【讨论】:

【参考方案4】:

我知道你 1 年前问过这个问题,但我仍然想发布我的解决方案,以防其他人受益。

    将 libsvm 放在任何地方。我在C:\Python27\Lib\site-packages\libsvm-3.17

    在 windows 环境中设置 PYTHONPATH。 转到系统属性 -> 高级 -> 环境变量。 添加新变量,命名为PYTHONPATH,设置值为C:\Python27\Lib\site-packages\libsvm-3.17\python

【讨论】:

【参考方案5】:

我认为没有必要将 dll 放在 C:\windows\system32 目录中,除非您使用的是旧版本的 Windows(XP 和更早版本)。

确保:

在 libsvm\python 目录中启动包含 from svmutil import * 的 python 测试脚本 您在 libsvm\windows 目录中仍有一份 libsvm dll 的副本(如果您将其移动到 C:\windows\system32,请将副本放回 libsvm\windows 目录中)

这适用于我的电脑。

【讨论】:

奇怪的是,它可以工作,但我如何避免将所有程序移动到该目录? 一旦你开始工作,你现在可以将你的程序移动到另一个文件夹,但确保你使用 import syssys.path.append('your_dir/libsvm/python') 包含 libsvm/python 文件夹。

以上是关于如何利用python使用libsvm的主要内容,如果未能解决你的问题,请参考以下文章

黑科技编程开发,利用Python使图片完美去除水印

利用这10个工具,你可以写出更好的Python代码

如何使表格布局中的列均匀分布,最大限度地利用可用空间

如何使 Hive 查询利用存储在 Metastore 中的统计信息

可视化实验八:利用Python绘制柱状图条形图

可视化实验八:利用Python绘制柱状图条形图