Python使用libsvm

关于libsvm包的安装,网上教程众多且各有不同,本文旨在简要总结几种常见的安装方法。

第一种方法:通过whl文件安装

  1. 下载whl文件:访问https://www.lfd.uci.edu/~gohlke/pythonlibs/#libsvm,选择与您的python版本相匹配的libsvm whl文件进行下载。

  2. 安装whl文件:打开命令提示符(cmd),导航到whl文件所在的目录,并运行以下命令(请根据实际文件名和路径进行调整):

    pip install libsvm‑3.22‑cp37‑cp37m‑win_amd64.whl
  3. 后续步骤:安装成功后,libsvm.dll文件将出现在Python的site-packages目录中。有人建议将此文件复制到C:windowssystem32目录下。

  4. 测试安装:使用以下代码测试libsvm是否安装成功:

    立即学习Python免费学习笔记(深入)”;

    from svmutil import * from svm import * y, x = [1, -1], [{1: 1, 2: 1}, {1: -1, 2: -1}] prob = svm_problem(y, x) param = svm_parameter('-t 0 -c 4 -b 1') model = svm_train(prob, param) yt = [1] xt = [{1: 1, 2: 1}] p_label, p_acc, p_val = svm_predict(yt, xt, model) print(p_label)

    如果代码运行无误,则说明libsvm已成功安装。

第二种方法:手动下载和配置

  1. 下载libsvm:从http://www.csie.ntu.edu.tw/~cjlin/libsvm/oldfiles/或http://www.csie.ntu.edu.tw/~cjlin/libsvm/下载libsvm包。

    Python使用libsvm

  2. 添加动态链接库:在下载的libsvm包中,找到windows文件夹内的libsvm.dll文件。如果您的Python是32位,直接将此文件复制到C:WindowsSystem32目录下。如果是64位系统,需要重新编译64位的dll文件。假设已安装visual studio(如VS2015),在VS2015 x64本机工具命令提示符中,导航到libsvm目录并运行:

    nmake -f Makefile.win clean all

    编译完成后,将生成的64位dll文件复制到C:WindowsSystem32目录下。

  3. 导入模块:为了便于使用,可以将libsvm包添加到Python的site-packages目录中,并在libsvm和libsvm/python文件夹中分别添加

    __init__.py

    文件。导入时使用以下命令:

    from libsvm.python.svm import * from libsvm.python.svmutil import *

    或者不添加到默认路径,直接在代码中添加路径:

    import sys sys.path.append("libsvm/python") import svm import svmutil

    如果遇到svmutil无法找到svm模块的问题,修改svmutil.py中的导入语句为:

    from libsvm.python.svm import * from libsvm.python.svm import __all__ as svm_all

第三种方法:直接解压使用

  1. 解压libsvm包:将libsvm的zip文件解压到特定位置(如D盘根目录)。

    Python使用libsvm

  2. 测试libsvm:在Python ide中运行以下代码以测试libsvm是否可用:

    Python使用libsvm

    如果能看到84%的准确度,说明libsvm已成功安装并可用。

训练和预测数据

假设训练数据集文件路径为G: rain.txt,预测数据集文件路径为G:predict.txt,使用svm方法如下:

  1. 加载数据

    train_label, train_value = svm_read_problem("G:train.txt")  # 训练数据集 predict_label, predict_value = svm_read_problem("G:predict.txt")  # 预测数据集
  2. 训练模型

    model = svm_train(train_label, train_value)
  3. 预测数据类别

    p_label, p_acc, p_val = svm_predict(predict_label, predict_value, model) print(p_acc)  # 打印预测结果

    其中,p_label是预测标签的列表,p_acc是预测的精确度,p_val在指定参数’-b 1’时返回判定系数。

LibSVM简介

libsvm的.zip格式版本解压后包含5个主要文件夹和一些c++源码文件:

  • Java:用于Java平台。
  • Python:用于参数优选。
  • svm-toy:可视化工具,用于展示训练数据和分类界面。
  • tools:包含用于数据集抽样、参数优选、集成测试和数据检查的Python文件。
  • windows:包含libsvm的四个exe程序包和样本文件heart_scale。

其他.h和.cpp文件是程序的源码,可以编译出相应的.exe文件。其中,svm.h和svm.cpp是最重要的文件,其他.c文件调用这些接口函数。

第一次体验LibSVM

  1. 解压libsvm包:将libsvm包解压到特定目录(如D:/libsvm)。

  2. 进入DOS环境:在命令提示符中导航到libsvm/windows目录。

  3. 进行libsvm训练:运行以下命令:

    svm-train heart_scale train.model

    其中,heart_scale是样本文件,train.model是保存训练结果的文件。训练完成后,会生成train.model文件,记录了训练结果。

参考资料:

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享