支持向量分类实用指南

来源:互联网 发布:淘宝宝贝被删除怎么办 编辑:程序博客网 时间:2024/06/06 03:58

说明:本文翻译总结自 Chih-Wei Hsu等的论文 A Practical Guide to Support Vector Classification. 该论文也是libsvm的指导教程,在libsvm的homepage上可以下载阅读。

1 Introduction

  • SVM在数据分类上是很有用的工具。
  • 虽然它比神经网络更易于使用,但不熟悉的使用者在第一次使用时往往得不到好的结果。
  • 一个分类任务需要把数据分成训练集和测试集。
  • 给出训练集的样本对(xi,yi),i=1,...,l , xRn,y{1,1}l 求解最优化问题:
    minw,b,ξ12WTW+Ci=1lξi
    subject toyi(WTϕ(Xi)+b)1ξi
      ξi0
  • 四种基本核函数:
    • 线性: K(Xi,Xj)=XTiXj
    • 多项式: K(Xi,Xj)=(γXTiXj+r)d,γ>0
    • 径向基函数(RBF): K(Xi,Xj)=eγ||XiXj||2,γ>0
    • sigmoid: K(Xi,Xj)=tanh(γXTiXj+r)

Proposed Procedure

  • 将数据格式转换为SVM工具包支持格式
  • 数据缩放
  • 考虑径向基函数
  • 用交叉验证选择最佳的 Cγ.
  • 用所得参数训练数据集
  • 测试

2 Data Preprocessing

  • 如果是类别属性,转换成数值
  • 推荐用m个数表示m个类别,其中只有一个为1, 其余为0
  • 训练集和测试集缩放尺度需要一致
  • 尺度缩放避免一项特征值过大主导其他特征

3 Model Selection

  • 之所以选用径向基函数,是因为:
    • 一般来说,径向基函数能应付类别与属性之间的非线性关系
    • 多项式核函数参数更多,在高维情况可能出现无穷大或0值
    • sigmoid核函数在某些参数是无效的
    • 特别地,如果特征特别多,那就直接用线性核函数
  • 通过 “Grid Search”选参
    例如, C=25,23,...215,γ=215,213,...,23

4 Discussion

如果特征太多考虑先选择特征再用SVM.

Appendix C 何时用线性核而不是RBF核

  • 样本数远小于特征数,用libSVM 线性核
  • 样本数和特征数都很大,用libLinear,速度快
  • 样本数远大于特征数,通常需要映射到高维空间,如果你一定要用线性核,那就用libLinear吧
0 0
原创粉丝点击