用 rbf 核计算 svm 的 w 向量

Posted

技术标签:

【中文标题】用 rbf 核计算 svm 的 w 向量【英文标题】:calculate w vector of svm with rbf kernel 【发布时间】:2020-05-18 03:33:23 【问题描述】:

我需要找到一种方法来计算带有 rbf 内核的 SVM 的 w 向量。参考libsvm文档,rbf内核定义为:

RBF:exp(-gamma*|u-v|^2)

我知道你是一个 1*n 数组 (model.sv_coef) 而v是m*n矩阵(model.SVs)

现在,我不知道如何计算 u 和 v 的欧式距离 ---> |u-v| (其中一个是一维数组,另一个是二维数组) 之后我怎么能找到一个 w 数组的 1*n 数组?

提前致谢。

【问题讨论】:

"很紧急!" - 是这样吗?那么我的时薪是 500 美元。当然是税前... 如果你能回答我,那是你的好意。 【参考方案1】:

不可能执行您梦寐以求的操作。在您的情况下,无法通过使用欧几里得距离来计算 d(u, v)。当您像在问题中那样定义任何类型的向量/矩阵时,尺寸不匹配。 u 和 v 是数据点,但不是某些 SV 估计的结果。

让自己清楚你的向量/矩阵的维度是什么。当您使用不同长度的向量时,请考虑使用 DTW(动态时间扭曲)等。您可以将 DTW 放入 RBF 内核中,至少这会在经验可靠的基础上给出结果(但请记住,DTW 违反了三角不等式)。

还有一点:u 和 v 是数据点。您应该更加熟悉 SVM。

【讨论】:

非常感谢,我知道'v'是支持向量的数组,它们是数据点,但是'u'呢?这不是“决策函数中 SV 的系数”(参考 libsvm doc)吗? 没有。想想 RBF 内核实际上做了什么。***是一个好的开始:en.wikipedia.org/wiki/Radial_basis_function_kernel ...请记住,“gamma”实际上是 $1/(2\sigma^2)$。

以上是关于用 rbf 核计算 svm 的 w 向量的主要内容,如果未能解决你的问题,请参考以下文章

R语言使用kernlab包中的ksvm函数构建支持向量机SVM模型(Support vector machines)使用RBF核函数使用table函数计算混淆矩阵评估分类模型性能

R语言使用e1071包中的svm函数构建支持向量机SVM模型使用tune.svm函数基于网格搜索(10折交叉验证)对RBF核函数的gamma参数和cost参数进行参数寻优使用最优参数构建最终模型

R语言使用e1071包中的svm函数构建支持向量机SVM模型使用tune.svm函数基于网格搜索(10折交叉验证)对RBF核函数的gamma参数和cost参数进行参数寻优使用最优参数构建最终模型

支持向量机高斯核调参小结

支持向量机的RBF核

R语言e1071包中的支持向量机:螺旋线型线性不可分数据集RBF核函数支持向量机SVM(验证模型在测试集上的表现可视化模型预测的结果添加超平面区域与原始数据标签进行对比分析)