关于libsvm包的安装,网上教程众多且各有不同,本文旨在简要总结几种常见的安装方法。
第一种方法:通过whl文件安装
-
下载whl文件:访问https://www.lfd.uci.edu/~gohlke/pythonlibs/#libsvm,选择与您的python版本相匹配的libsvm whl文件进行下载。
-
安装whl文件:打开命令提示符(cmd),导航到whl文件所在的目录,并运行以下命令(请根据实际文件名和路径进行调整):
pip install libsvm‑3.22‑cp37‑cp37m‑win_amd64.whl
-
后续步骤:安装成功后,libsvm.dll文件将出现在Python的site-packages目录中。有人建议将此文件复制到C:windowssystem32目录下。
-
测试安装:使用以下代码测试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已成功安装。
第二种方法:手动下载和配置
-
下载libsvm:从http://www.csie.ntu.edu.tw/~cjlin/libsvm/oldfiles/或http://www.csie.ntu.edu.tw/~cjlin/libsvm/下载libsvm包。
-
添加动态链接库:在下载的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目录下。
-
导入模块:为了便于使用,可以将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
第三种方法:直接解压使用
-
解压libsvm包:将libsvm的zip文件解压到特定位置(如D盘根目录)。
-
测试libsvm:在Python ide中运行以下代码以测试libsvm是否可用:
如果能看到84%的准确度,说明libsvm已成功安装并可用。
训练和预测数据
假设训练数据集文件路径为G: rain.txt,预测数据集文件路径为G:predict.txt,使用svm方法如下:
-
加载数据:
train_label, train_value = svm_read_problem("G:train.txt") # 训练数据集 predict_label, predict_value = svm_read_problem("G:predict.txt") # 预测数据集
-
训练模型:
model = svm_train(train_label, train_value)
-
预测数据类别:
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
-
解压libsvm包:将libsvm包解压到特定目录(如D:/libsvm)。
-
进入DOS环境:在命令提示符中导航到libsvm/windows目录。
-
进行libsvm训练:运行以下命令:
svm-train heart_scale train.model
其中,heart_scale是样本文件,train.model是保存训练结果的文件。训练完成后,会生成train.model文件,记录了训练结果。
参考资料: