LIBSVM使用手册与机器学习中几个常见观点


最近复习的时候看到了机器学习中的一些不好解决的问题,都是相关的,于是看了一下LIBSVM的官方手册和《A Few Useful Things to Know about Machine Learning》这篇文章,发现其中的一些观点确实是很有实际的指导意义,而这些从教科书上是看不到的。因此拿来记录一下。


一、libsvm的手册

1.SVM的基本公式:如下图所示,C为惩罚因子,Φ(x)为核函数;ξ为松弛变量;

关于SVM的核函数,包括线性核函数,RBF(高斯)核函数,多项式核函数以及sigmoid核函数;

2.在使用LIBSVM的过程中,官方推荐的主要步骤如下:

a.数据格式的转换,需要转换为libsvm支持的数据结构;

b.数据归一化处理,有论文证明了特征的归一化处理对SVM的分类结果影响很大,毕竟特征的形式决定了样本的分布位置。此外对于多项式核函数,如果不进行数据归一化,过大的特征值使得计算的内存复杂度大大提升。此外如果样本数据的特征维度较大时,需要采用一些降维算法对样本进行处理,来降低计算的复杂度与内存开销。

c.推荐采用RBF核函数进行初步调参;因为线性核函数属于RBF的一种特殊情况,而对RBF核函数进行调参,也可以达到sigmoid核函数的效果。而对于多项式核函数,它比RBF在高维空间中有更多的hyperparameters,过多的参数并不能带来分类效果的提升,此外RBF在计算上面有更大的优势,它相比多项式核函数计算的内积的值比较小,方便处理。

对于一些特殊情况,RBF核函数就不是很适用了,这个后面会有的。

d.通过交叉验证确定出C和γ。即对每一次的模型训练后的泛化误差的计算,都是采用交叉验证的形式。利用交叉验证的形式(此时的数据集是训练样本),对c和γ的取值组成的分布网格上,分别试验得到泛化误差,取泛化误差最小的那组对应的c和γ的参数作为模型核函数的参数,然后采用所有的训练样本进行训练,得到模型之后就可以采用测试样本来检验模型的分类效果了。至于网格搜索法,虽然麻烦,但是比高级的优化方法能够有较小的时间开销。

3.其他特殊情况:

(1).对于数据的归一化处理,训练数据与测试数据要采用相同的归一化尺度,否则将降低分类效果。

(2).对于不适用于RBF核函数的情况,主要有3种情况。

a.样本数远远小于特征数。这种数据特征维度较大,而样本太少,需要采用线性核函数进行分类,不仅计算速度快,内存开销小。如果采用其他核函数,将特征转换到高维不仅计算复杂度高,而且容易过拟合,毕竟较简单的模型越不容易过拟合。为此libsvm官方推荐了LIBLINEAR这个新的库,主要用来处理线性核函数的情况,相比libsvm的线性核函数,这个库的速度要快很多,主要面向大数据的场景下。

b.样本数与特征维度均较大时,还是推荐采用线性模型,即线性核函数,此时LIBLINEAR比libsvm要快很多,好像进行了GPU加速吧。速度快很多。主要采用-s 1模式。

c.样本数远远大于特征维度时,可以采用其他核函数,将特征空间变换到高维空间,但是也可以采用LIBLINEAR,采用线性模型进行处理。此时线性模型LIBLINEAR可以采用-s 2模式进行。


二、机器学习几个常见观点

1.学习=representation(模型)+evaluation(策略)+optimization(优化算法);

representation也叫做假设空间。如果一个分类器在假设空间里,则就是可以学习的。感觉这上面对模型的描述很抽象,其实就是模型的类型吧,可以分为核函数、超平面、规则模式、图模型等,包括条件概率分布或决策函数。而决策略其实就是评价标准,相当于代价函数或风险函数吧。常见的代价函数包括0-1损失函数,平方损失函数,绝对损失函数和对数损失函数。而最优化即是在代价函数的最小的目标下对模型参数的求解过程。

2.训练样本与测试样本要分开。








三、参考文献

[1] A Practical Guide to Support Vector Classification.

[2] A Few Useful Things to Know about Machine Learning.




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值