毋庸置疑,LibSVM是台湾牛人为世界机器学习的卓越贡献之一。一般都是基于Matlab的,其实LibSVM也可以用Python跑。
第一步,确定本机Python的版本:
![](https://yqfile.alicdn.com/img_0c4da5de98dcb12bb879afd5d8649017.png?x-oss-process=image/resize,w_1400/format,webp)
第二步,到官网 http://www.csie.ntu.edu.tw/~cjlin/libsvm/ ,来下载LibSVM软件包,我选择的是zip包。
![](https://yqfile.alicdn.com/img_7aaccb1a3cf2f6c52c3f5f89b37b62e1.png?x-oss-process=image/resize,w_1400/format,webp)
第三步,将zip包解压到一个特定位置,我放到了C:盘根目录,当然也可以放到program files中。
![](https://yqfile.alicdn.com/img_db2dfa002131760ec121c35eb995317a.png?x-oss-process=image/resize,w_1400/format,webp)
第四步,就可以测试一下LibSVM是否可用了,打开Python IDE,输入以下代码:
![](https://yqfile.alicdn.com/img_ab6aa4d5377e37ae270b69e637b1dfae.png?x-oss-process=image/resize,w_1400/format,webp)
第五步,使用我的个人数据
libsvm的数据格式如下:
![](https://yqfile.alicdn.com/img_575d22236675bc08b4985b6e1926f31d.png?x-oss-process=image/resize,w_1400/format,webp)
- import os
- import sys
-
- os.chdir('C:\libsvm-3.17\python')
- from svmutil import *
-
- y, x = svm_read_problem('../lkagain.txt')
- m = svm_train(y[:275], x[:275], '-c 5')
-
- y, x = svm_read_problem('../lk2.txt')
- p_label, p_acc, p_val = svm_predict(y[0:], x[0:], m)
- print p_label
- print p_acc
- print p_val
第六步,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.
本文参考了http://blog.csdn.net/lqhbupt/article/details/8599295,在此感谢xmjdh。