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)