Ubuntu + Python下libsvm使用小结
关于libsvm
libsvm是台湾大学林智仁(Chih-Jen Lin)教授等开发,它主要用于分类(支持二分类和多分类)和回归,主页主页,下载网站是链接,目前更新到3.23版本。
安装测试
我是在Ubuntu16.04环境下使用的 解压后目录如下:
针对Python,进入Python包,内容如下:
测试:
命令行输入:
import sys
sys.path.append('/home/thinkstation/liny/libsvm/python')
import svm
如果系统里是第一次使用libsvm,此时会报错 LIBSVM library not found 进入linsvm目录,命令行输入
make lib / /得到 libsvm.so.2
本地目录下测试可直接使用
加入系统路径:
加Python包下的.py文件放到/usr/lib/python2.7/dist-packages中,libsvm.so.2放到/usr/local/lib/python2.7中
使用
1.使用 a1a二分类数据集
链接 特征已经进行了处理,libsvm 数据格式如下:
可以看出,格式为: 类别 index:特征 index:特征 …….
2.mnist数据集
libsvm官网数据集中的mnist数据
其中前两项数据没有经过scale,后两项没有经过scale 用未scale的数据训练测试: 训练了接近5个小时,-_-||
精度竟然这么低。。。。。 换上scale后的数据:
训练时间10分钟左右,精度0.94
3.猫狗二分类
数据准备:猫狗图片各450张,大小 50*50,按照格式将每张图片转为一行,并将像素值归为0-1
准确率0.62,可能数据有点少吧。。。。 总之,作者写的很完善了,还在不断优化中。 感觉我们如果要使用的话,需要自己做的主要是数据、特征方面的处理等,高深一点的就研究并行
主要使用函数
svmutil.py中 1. svm_load_model(model_file_name) 2. svm_save_model(model_file_name, model) 3. svm_train(arg1, arg2=None, arg3=None) 4. svm_predict(y, x, m, options=“”)
commonutil.py中 1.svm_read_problem(data_file_name, return_scipy=False)//返回label与feature 2.evaluations(ty, pv, useScipy = True)