700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > python svm包_支持向量机的开源包LIBSVM

python svm包_支持向量机的开源包LIBSVM

时间:2018-05-22 05:25:47

相关推荐

python svm包_支持向量机的开源包LIBSVM

前言

LIBSVM是台湾大学林智仁(Lin Chih-Jen)教授等开发设计的一个简单、易于使用和快速有效的SVM分类与回归的软件包。LIBSVM软件包拥有目前各种常用编程语言的版本,如Python、Java、Matlab等。

一、支持算法

LIBSVM支持下述算法,具体可以参考作者写的介绍文档

1.1 C-SVC

1.2 ν-SVC

1.3 ε-SVR

1.4 ν-SVR

二、LIBSVM入门使用

作者写了该软件包的入门使用文档

SVM使用流程:

转换数据格式;

缩放数据,例如将其变换到[0,1]或者[-1,1]的范围;

使用RBF核函数;

使用交叉验证寻找最优参数C和r;

使用最优参数训练整个数据集;

测试。

首选RBF核函数,原因是:

线性核是RBF的特例;

Sigmoid核在特定参数下的特性类似于RBF;

多项式核参数比RBF多,在阶数较高时且容易导致计算数值过大。

但是在特征数量很大时,RBF可能会不适用,使用线性核是一种更好的选择。

寻找最优参数:

使用网格搜索利用交叉验证寻找最优参数时,先使用粗网格,然后缩小寻找区域使用细网格。网格使用指数拉伸网格,例如:C=2-5,2-4,...,210 ,gamma=2-7,2-6,...,215。

特征数量:

特征过多时,先进行特征提取,选取一个合适的特征子集。

LIBSVM不适合特征数量过多且样本数量过多的情形,比如文档分类。

LIBLINEAR更加适合这类情况。

在样本数量很大时,LIBLINEAR速度会快很多倍。

三、Python接口

LIBSVM接口函数在svmutil.py文件中,按照源码顺序依次是:

svm_read_problem(data_file_name)

从文本文件中读取数据,数据的格式为:

label index1:value1 index2:value2 ...

返回

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。