机器学习面试必知:SVM中解决泛化问题

39 篇文章 3 订阅
23 篇文章 1 订阅

在前面SVM一文中,我们解得的支持向量机在原始空间中是对训练数据能精确划分的如下图所示。可想而知,有大概率会出现过拟合的问题。这样的支持向量机的泛化能力较差。
在这里插入图片描述因此我们需要一种方式修改支持向量机,允许一些训练数据点被误分类,从而获得一个更好的泛化能力。我们允许数据点在边缘边界的错误侧,同时增加一个惩罚项,这个惩罚项随着与决策边界的距离的增大而增大。我们令这个惩罚项是距离的线性函数,为了实现它我们引入了松弛变量 ξ n ≥ 0 \xi_{n}\geq0 ξn0,这样每个训练数据点都有一个松弛变量。对于位于正确的边缘边界内部的点或者边缘上的点 ξ n = 0 \xi_{n}=0 ξn=0。对于其他的点, ξ n = ∣ t n − y ( x n ) ∣ \xi_{n}=|t_{n}-y(x_{n})| ξn=tny(xn)。因此对于位于决策边界 y ( x n ) = 0 y(x_{n})=0 y(xn)=0上的点, ξ n = 1 \xi_{n}=1 ξn=1,并且 ξ n > 1 \xi_{n}>1 ξn>1就是被误分类的点,所以被精确分类的点满足 t n y ( x n ) ≥ 1 − ξ n , n = 1 , . . . , N t_{n}y(x_{n})\geq 1-\xi_{n},\quad n=1,...,N tny(xn)1ξn,n=1,...,N

从上图中我们可以看到 ξ n = 0 \xi_{n}=0 ξn=0的数据点被正确分类,要么位于边缘上,要么在边缘正确的一侧。 0 &lt; ξ n &lt; = 1 0&lt;\xi_{n}&lt;=1 0<ξn<=1的数据点位于边缘内部,但还是在决策边界的正确一侧。 ξ n &gt; 1 \xi_{n}&gt;1 ξn>1的数据点位于决策边界的错误一侧,是被错误分类的点。

所以这种方法有时被描述成放宽边缘的硬限制,得到一个软边缘,并且能允许一些训练数据点被错分。同时这种方法对异常点很敏感,因为误分类的惩罚随着 ξ \xi ξ线性增加。最终我们得到这样一个误差函数 C ∑ n = 1 N ξ n + 1 2 ∣ ∣ w ∣ ∣ 2 C\sum_{n=1}^{N}\xi _{n}+\frac{1}{2}||w||^{2} Cn=1Nξn+21w2其中参数 C ≥ 0 C\geq0 C0控制了松弛变量惩罚与边缘之间的折中。由于任何被误分类的数据点都有 ξ n &gt; 1 \xi_{n}&gt;1 ξn>1,因此 ∑ n ξ n \sum_{n}\xi_{n} nξn是误分类数据点数量的上界。于是参数C类似于正则化系数,它控制了最小化训练误差与模型复杂度的折中。当C趋向于无穷大时,就是线性可分数据的SVM。与之前的求法类似,我们先写出对应的拉格朗日函数 L ( w , b , ξ , a , u ) = 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ n = 1 N ξ n − ∑ n = 1 N a n { t n y ( x n ) − 1 + ξ n } − ∑ n = 1 N u n ξ n L(w,b,\xi,a,u)=\frac{1}{2}||w||^{2}+C\sum_{n=1}^{N}\xi _{n}-\sum_{n=1}^{N}a_{n}\left\{t_{n}y(x_{n})-1+\xi_{n} \right\}-\sum_{n=1}^{N}u_{n}\xi_{n} L(w,b,ξ,a,u)=21w2+Cn=1Nξnn=1Nan{tny(xn)1+ξn}n=1Nunξn对应的KKT条件如下 a n ≥ 0 a_{n}\geq0 an0 t n y ( x n ) − 1 + ξ n ≥ 0 t_{n}y(x_{n})-1+\xi_{n}\geq0 tny(xn)1+ξn0 a n ( t n y ( x n ) − 1 + ξ n ) = 0 a_{n}(t_{n}y(x_{n})-1+\xi_{n})=0 an(tny(xn)1+ξn)=0 u n ≥ 0 u_{n}\geq0 un0 ξ n ≥ 0 \xi_{n}\geq0 ξn0 u n ξ n = 0 u_{n}\xi_{n}=0 unξn=0对拉格朗日函数进行最优化 ∂ L ∂ w = 0 ⇒ w = ∑ n = 1 N a n t n ϕ ( x n ) \frac{\partial L}{\partial w}=0\Rightarrow w=\sum_{n=1}^{N}a_{n}t_{n}\phi(x_{n}) wL=0w=n=1Nantnϕ(xn) ∂ L ∂ b = 0 ⇒ 0 = ∑ n = 1 N a n t n \frac{\partial L}{\partial b}=0\Rightarrow 0=\sum_{n=1}^{N}a_{n}t_{n} bL=00=n=1Nantn ∂ L ∂ ξ = 0 ⇒ a n = C − u n \frac{\partial L}{\partial \xi}=0\Rightarrow a_{n}=C-u_{n} ξL=0an=Cun把这些结果代入得到 L ( a ) = ∑ n = 1 N a n − 1 2 ∑ n = 1 N ∑ m = 1 N a n a m t n t m K ( x n , x m ) L(a)=\sum_{n=1}^{N}a_{n}-\frac{1}{2}\sum_{n=1}^{N}\sum_{m=1}^{N}a_{n}a_{m}t_{n}t_{m}K(x_{n},x_{m}) L(a)=n=1Nan21n=1Nm=1NanamtntmK(xn,xm)与硬判决相同,但限制条件有差异 0 ≤ a n ≤ C 0\leq a_{n}\leq C 0anC ∑ n = 1 N a n t n = 0 \sum_{n=1}^{N}a_{n}t_{n}=0 n=1Nantn=0至此我们已经得到了 w w w,接下来求出 b b b,与之前相同考虑KKT条件。我们要找到满足 ξ n = 0 \xi_{n}=0 ξn=0 t n y ( x n ) = 1 t_{n}y(x_{n})=1 tny(xn)=1的点 a n &gt; 0 , ξ n = 0 , u n ξ n = 0 ⇒ a n &gt; 0 , u n &gt; 0 ⇒ a n &gt; 0 , a n = C − u n &lt; C ⇒ 0 &lt; a n &lt; C a_{n}&gt;0,\xi_{n}=0,u_{n}\xi_{n}=0\Rightarrow a_{n}&gt;0,u_{n}&gt;0\Rightarrow a_{n}&gt;0,a_{n}=C-u_{n}&lt;C \Rightarrow 0&lt;a_{n}&lt;C an>0,ξn=0,unξn=0an>0,un>0an>0,an=Cun<C0<an<C然后与之前的计算一样 b = 1 N M ∑ n ∈ M { t n − ∑ m ∈ S a m t m K ( x n , x m ) } b=\frac{1}{N_{M}}\sum_{n\in M}\left\{t_{n}-\sum_{m\in S}a_{m}t_{m}K(x_{n},x_{m})\right\} b=NM1nM{tnmSamtmK(xn,xm)}此时M表示满足 0 &lt; a n &lt; C 0&lt;a_{n}&lt;C 0<an<C的数据点的下标集合

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
国信证券通过机器学习技术,研究了SVM(支持向量机)算法在选股方面的应用,以及Adaboost(自适应增强)算法在股票预测的增强效果。 首先,SVM算法在选股发挥了重要作用。SVM是一种监督学习算法,通过将样本映射到高维空间来构建一个最优的超平面,从而实现对未知样本的分类。在选股方面,SVM可以使用历史股票数据作为输入,通过对不同特征的权重进行学习和调整,找到最佳投资组合。通过对大量数据进行分析和训练,SVM算法能够提供准确的选股建议,并在实际投资取得不错的效果。 其次,Adaboost算法在股票预测的增强效果显著。Adaboost是一种集成学习算法,它通过串行训练多个弱分类器,并根据前一个分类器的错误率来调整下一个分类器的权重。这样,每个分类器都专注于之前分类器未正确分类的数据,从而提高整体预测的准确性。在股票预测,Adaboost可以通过选择适当的特征和调整分类器的权重,对市场走势进行有效的预测。通过多层次的学习和调整,Adaboost能够提高选股策略的稳定性和盈利能力。 综上所述,国信证券利用机器学习SVM算法和Adaboost算法,实现了在选股和股票预测的研究和应用。这些算法通过对数据的分析和学习,为投资者提供了准确的选股策略和市场走势预测,有望为投资者带来更好的投资回报。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值