支持向量机的rbf函数到底是怎么算的?

最近在做机器学习相关的zkp工作,在处理支持向量机核函数时对一些具体细节产生了一些疑惑,查询了很多资料,并做实验得到了结论,在此记录一下 (2021.8.9)

问题描述

在进行支持向量机分类时(svc),大部分问题都要使用核函数,而最常用的核函数时rbf核函数。根据sklearn的文档,rbf核函数的定义是:
在这里插入图片描述
可以看到,核函数的定义是计算两个输入向量xy的距离,乘以某一个参数并求e的负指数幂。这里问题来了:假设我们已经持有一个训练好的模型,参数固定,且有一条训练数据x,那么此时,y是什么?

几个猜想

  • 猜想1:由于函数中y的定义是None,一开始猜想y是0,或者是x本身。这两个猜想比较容易看出是错误的,被排除。
  • 猜想2:看了许多知乎、csdn后,发现有人描述:“rbf核函数的思想有些像k-means聚类,将新样本分类到最近的样本中”。更有博客描述在径向基核函数中y是一个“landmark”(啊真不知为什么要这样讲,个人感觉很歧义呀),因此猜测y会不会是在训练阶段固定下来的参数,像上式中的 γ \gamma γ一样。但有些地方又说“多数情况下取所有训练集作为landmark”。经过思考,认为不太可能把训练数据集直接嵌入到模型里,并且模型没有相应维度、或类似维度的输出,排除这个猜想。
  • 猜想3:也单独考虑过训练集,或部分训练数据,同理排除。
  • 猜想4:考虑过训练样本本身两两计算距离,然而哪怕只有一条数据也应该可以预测,因此排除。

结论

在排除了一堆错误答案,看了无数的博客,跟许多人讨论后,认为有很大可能这里的y是支持向量机的支持向量,即support vectors。同时在翻找资料时,找到这样一个帖子:
在这里插入图片描述
在这个回答中,我们可以看到博主提到,decision function是:
Σ i ∈ S V α i k ( x , x i ) + b = y \Sigma_{i\in SV}\alpha_ik(x, x_i)+b=y ΣiSVαik(x,xi)+b=

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值