SVM笔记--要点

0、心得




本文是从LIBSVM的guide中抽出来的要点: http://www.csie.ntu.edu.tw/~cjlin/libsvm/
1、简介

2、数据预处理
  • ①特征较少时用one-hot code表示,也即有加入分RGB三种颜色,不要R用1,G用2,B用3表示,而是应该用三维向量 (1,0,0), (0,1,0), (0,0,1)表示这三种颜色。
  • ②特征的scaling问题:建议将特征缩放到区间[-1,1]或[0, 1] (线性地缩放)


3、核函数的选择
  • 一般径向基函数(RBF)比较好;
  • 特征维度很高时最好采用Linear kernal


4、参数选择--交叉验证和grid搜索

目标:在测试数据上取得高的正确率(而非在训练数据上!)
k-fold 交叉验证(cross validation):将训练集分为k份,1份做验证,其他k-1份做训练。如此,可以训练k、验证k次,求取平均正确率作为衡量标准。 这样可以有效防止过拟合。

对于参数C和径向基函数的参数γ,可以采用由粗到精的搜索策略。
如先在C=2^-3, 2^-2,..., 2^10;   γ=2^-7, ... 2^-3的网格上搜索最优值,
再在其附近的网格内细分网格进行搜索。  (可以并行~~~)

对于大数据集,一个策略是先随机选一部分在粗网格上选取最优参数,再在细化最优参数时对整个训练集进行参数的网格搜索。

选取到最优参数后,再用这组参数重新利用整个训练集进行训练。


5、适于使用linear核函数而非径向基函数的情况
  • 样本数<<特征维数,
  • 样本数和特征维数都很大,适于使用LIBLINEAR工具箱(比LIBSVM快很多)。
  • 样本数>>特征维数,适于使用LIBLINEAR工具箱。

LIBLinear工具箱: http://www.csie.ntu.edu.tw/~cjlin/index.html

猜你喜欢

转载自cherishlc.iteye.com/blog/1847849