LIBSVM是台湾大学林智仁(Lin
Chih-Jen)教授等开发设计的一个简单、易于使用和快速有效的SVM模式识别与回归的软件包。该软件对SVM所涉及的参数调节相对比较少,提供了很多的默认参数,利用这些默认参数可以解决很多问题;并提供了交互检验(Cross
Validation)的功能。该软件可以解决C-SVM、ν-SVM、ε-SVR和ν-SVR等问题,包括基于一对一算法的多类模式识别问题。
环境:win32,python3.4
1.下载最新版libsvm-3.21:
http://www.csie.ntu.edu.tw/~cjlin/libsvm/解压,我解压到了C盘根目录下C:\libsvm-3.21
2.在pycharm中测试:
测试代码
如果出现以下运行结果,则配置成功:
结果
【备注】出现问题及解决方法:
问题:WindowsError: [Error 193] %1 不是有效的 Win32
原因:libsvm.dll版本与OS版本不符。
解决方法:在
http://www.lfd.uci.edu/~gohlke/pythonlibs/#libsvm上下载符合自己OS版本的libsvm。将下载好的.whl文件后缀改为.zip,解压,然后将解压的文件中含有的libsvm.dll替换C:\libsvm-3.21\windows中的libsvm.dll即可。
3.python接口的说明
在libsvm-3.16的python文件夹下主要包括了两个文件svm.py和svmutil.py。
svmutil.py接口主要包括了high-level的函数,这些函数的使用和LIBSVM的MATLAB接口大体类似
svmutil中主要包含了以下几个函数:
svm_train() : train an SVM model
svm_predict() : predict testing data
svm_read_problem() : read the data from a LIBSVM-format
file.
svm_load_model() : load a LIBSVM model.
svm_save_model() : save model to a file.
evaluations() : evaluate prediction results.
svm.py接口主要包括了一些low-level的应用。在svm.py中采用了python内置的ctypes库,由此python可以直接访问svm.h中定义的C结构和接口函数。svm.py主要运用了四个数据结构svm_node,
svm_problem, svm_parameter和svm_model。
本回答被网友采纳