SVM中使用核函数后相关参数的计算

在使用Python实现SVM时,发现一些代码在处理核函数后预测函数f(x)=wTx+b的表示不准确。实际上,由于核函数将样本映射到高维空间,应为f(x)=wTΦ(x)+b,其中Φ(x)是映射后的向量。通过支持向量可以求得b,并用公式(2)得到f(x)进行预测。
摘要由CSDN通过智能技术生成

最近在用Python实现SVM,参考了网上一些代码,发现其中关于 f ( x ) f(x) f(x)相关参数的计算不太正确。
如下面博客中的代码:
https://blog.csdn.net/jichun4686/article/details/102947388
其中使用核函数并进行相关凸二次规划问题的求解后,预测函数仍为 f ( x ) = w T x + b f(x)=\bm{w^T}\bm{x}+b f(x)=wTx+b 的形式。事实上由于核函数把原样本空间映射到了其它维度的空间, w \bm{w} w x \bm{x} x 的形式会发生变化。正确的形式应当为 f ( x ) = w T Φ ( x ) + b f(x)=\bm{w^T}Φ(\bm{x})+b f(x)=wTΦ(x)+b。其中 Φ ( x ) Φ(\bm{x}) Φ(x) 表示将 x \bm{x} x 映射后的空间向量。因为直接得到这个映射的形式可能相当地困难,所以可以通过如下方式得到 b b b : b = y j − ∑ i = 1 m α i y i κ ( x i x j ) (1) b = y_j -\sum_{i=1}^mα_iy_iκ(\bm{x}_i\bm{x}_j)\tag{1} b=yji=1mαiyiκ(xixj)(1)之后通过支持向量展式 f ( x ) = ∑ i = 1 m α i y i κ ( x , x i ) + b (2) f(\bm{x}) = \sum_{i=1}^mα_iy_iκ(\bm{x},\bm{x}_i) +b \tag{2} f(x)=i=1mαiyiκ(x,xi)+b(2)即可得到 f ( x ) f(x) f(x) 以进行预测。
注:m为训练集中样本的个数。 x = ( x 1 , x 2 , x 3 . . . ) \bm{x}= (\bm{x}_1,\bm{x}_2,\bm{x}_3...) x=(x1,x2,x3...) 为训练集或测试集。

参考资料
  1. 周志华《机器学习》
  2. https://zhuanlan.zhihu.com/p/31886934
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值