使用支持向量机

在实际运用中,很少有人动手实现解决SVM最优化的问题,因为已经有研究者做了很多年的数值优化了,我们再动手实现得不偿失。有很多好用的SVM软件包,比如libnear和libsvm。

有了SVM软件包,我们不再过多关心目标函数最优化的问题,只需要重点考虑核函数的选择。

除了以前经常用到的高斯核函数之外,我们还有其他一些选择,如:

多项式核函数(Polynomial Kernel)

字符串核函数(String kernel)

卡方核函数(chi-square kernel)

直方图交集核函数(histogram intersection kernel)

....

这些核函数和高斯核函数一样,也是根据训练集和地标之间的距离来构建新特征。这些核函数需要满足Mercer's定理,才能被支持向量机的优化软件正确处理。

Mercer 定理:任何半正定的函数都可以作为核函数。所谓半正定的函数f(xi,xj),是指拥有训练数据集合(x1,x2,...xn),我们定义一个矩阵的元素aij = f(xi,xj),这个矩阵式n*n的,如果这个矩阵是半正定的,那么f(xi,xj)就称为半正定的函数。这个mercer定理是核函数必要条件.

半正定矩阵:设A为实对称矩阵,若对于每个非零实向量X,都有X'AX≥0,则称A为正定矩阵,称X'AX为半正定二次型。(其中,X'表示X的转置。)

除了核函数的选择,还要注意 C 值得设置,我们从以前的分析中,已经了解到了C值的重要性。

从逻辑回归模型,我们得到了支持向量机模型,在两者之间,我们该如何选择? 

下面是一些普遍使用的准则

n为特征数,m为训练样本数。

(1)如果相较于m而言,n要大许多,即训练集数据量不够支持我们训练一个复杂的非线性模型,我们选用逻辑回归模型或者不带核函数的支持向量机。

(2)如果n较小,而且m大小中等,例如n在1-1000之间,而m在10-10000之间,使用高斯核函数的SVM。

(3)如果n 较小,而m较大,例如n在1-1000之间,而m大于50000,则使用SVM会非常慢,解决方案是创造、增加更多的特征,然后使用逻辑回归或者不带核函数的SVM。

值得一提的是,神经网络在以上三种情况都可能会有较好地表现,但是训练神经网络可能非常慢,选择支持向量机的原因主要在于它的代价函数是凸函数,不存在局部最小值,直接是全局最小值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值