gpt4 book ai didi

r - kernlab 中 rbfKernel 的方程与标准不同?

转载 作者:行者123 更新时间:2023-12-01 03:48:54 24 4
gpt4 key购买 nike

我观察到 kernlab 使用 rbfkernel 作为,

rbf(x,y) = exp(-sigma * euclideanNorm(x-y)^2)

但根据这个 wiki link , rbf 内核应该是这样的形式
rbf(x,y) = exp(-euclideanNorm(x-y)^2/(2*sigma^2))

这也更直观,因为具有大内核 sigma 值的两个接近样本将导致更高的相似性匹配。

我不确定是什么 e1071 svm使用( native 代码 libsvm?)

我希望有人能启发我为什么有区别?我发现这个是因为我最初使用的是 e1071但切换到 ksvm但看到两者的结果不一致。
一个比较的小例子
set.seed(123)
x <- rnorm(3)
y <- rnorm(3)
sigma <- 100

rbf <- rbfdot(sigma=sigma)
rbf(x, y)
exp( -sum((x-y)^2)/(2*sigma^2) )

我希望内核值接近 1(因为 x,y 来自 sigma=1,而内核 sigma=100)。这仅在第二种情况下观察到。

最佳答案

我也遇到了这种差异,我最终深入研究了源文件,以确定文档中是否有错别字,或者究竟发生了什么,因为高斯上下文中的 sigma 传统上是分母的标准偏差,对吗?

这是相关的来源

**kernlab\R\kernels.R**
## Define the kernel objects,
## functions with an additional slot for the kernel parameter list.
## kernel functions take two vector arguments and return a scalar (dot product)


rbfdot<- function(sigma=1)
{

rval <- function(x,y=NULL)
{
if(!is(x,"vector")) stop("x must be a vector")
if(!is(y,"vector")&&!is.null(y)) stop("y must a vector")
if (is(x,"vector") && is.null(y)){
return(1)
}
if (is(x,"vector") && is(y,"vector")){
if (!length(x)==length(y))
stop("number of dimension must be the same on both data points")
return(exp(sigma*(2*crossprod(x,y) - crossprod(x) - crossprod(y))))
# sigma/2 or sigma ??
}
}
return(new("rbfkernel",.Data=rval,kpar=list(sigma=sigma)))
}

您可以从他们对 sigma/2 or sigma ?? 的评论中观察到他们可能对要采用的约定感到有些困惑, /2 的存在。将与标准偏差形式 /(2*sigma) 一致,但我不得不推测这个发现。

现在另一个确凿的证据位于 ? rbfdot 的帮助页面中。其中读...

sigma The inverse kernel width used by the Gaussian the Laplacian, the Bessel and the ANOVA kernel



这与他们在分子中使用 sigma 的形式一致,因为在分母中,它将与高斯右边的宽度成比例地缩放。所以看起来他们确实确定了维基百科文章中描述为 Gamma 形式的约定,他们说

An equivalent, but simpler, definition involves a parameter gamma = -1/(2*sigma^2)



因此,差异似乎只是采用不同但等效的约定的问题。特定约定的一个动机(有人可能在评论中确认)可能来自代码重用和一致性问题,正如您所见,该参数被其他三个内核形式使用,这些形式的参数可能更传统地设置在分子中。但是,我不确定这一点,因为我从未使用过这些替代内核,并且对每个内核都不熟悉。

关于r - kernlab 中 rbfKernel 的方程与标准不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24624523/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com