繁体   English   中英

使用 RBF 内核进行 SVR 推理的方程式是什么?

[英]What is the equation for SVR inference using an RBF kernel?

我正在使用 sklearn 使用 RBF 内核进行 SVR(回归)。 我想知道推理是如何在幕后完成的。 我认为它是支持向量、函数均值和 gamma 的函数,但似乎我缺少一个方面(可能基于 2 个点的接近程度进行一些缩放。

这是我在下图中尝试过的“我的方程式”

out = mean
for vect in vectors:
    out = out + (vect.y - mean) * math.exp(-(vect.x - x) ** 2 * gamma)

当我只隔开 2 个点时,我的方程与 skLearn 使用 svr.predict 报告的结果相匹配。

用这两个训练点制作了这个

有 3 个训练点和 2 个靠近在一起,我的方程与 svr.predict 给出的不匹配:

在此处输入图像描述

给定支持向量、伽马和均值,以及其他任何需要的东西,使用 RBF 内核进行 SVR 推理的方程是什么? 这些可以从 sklearn svr 类中获得吗?

使用 sklearn 库和带有 RBF 内核的 SVR 推理对我有用的等式如下与 python 代码:

# x and y is already defined, and is the training data for the SVR
svr = svm.SVR(kernel="rbf", C=C, gamma=gamma, epsilon=epsilon, tol=tol)
svr.fit(x,y)
vectors = []
for i in svr.support_:
    vectors.append([x[i][0], y[i]])
out = svr._intercept_[0]
for vect, coef in zip(vectors, svr._dual_coef_[0]):
    out = out + coef * math.exp(-(vect[0] - x) ** 2 * gamma)

我发现svr._intercept_[0]包含函数的 y 偏移量。

我发现svr._dual_coef_[0]包含将每个指数乘以的系数。

我发现svr.support_包含用作支持向量的训练集中元素的索引。

我意识到我正在访问打算在 svr 类中访问的内容,但是,我没有看到用于访问这些变量的官方 API 方法,目前这对我有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM