(en R) ¿Por qué el resultado de ksvm usando el kernel lineal definido por el usuario es diferente del de ksvm usando "vanilladot"?

Quería usar la función de kernel definida por el usuario para Ksvm en R. así que, traté de hacer un kernel vanilladot y comparar con "vanilladot" que está integrado en "kernlab" como práctica.

Escribo mi kernel como sigue.

#
###vanilla kernel with class "kernel"
#
kfunction.k <- function(){
   k <- function (x,y){crossprod(x,y)}
   class(k) <- "kernel"
   k}
l<-0.1 ; C<-1/(2*l)

###use kfunction.k
tmp<-ksvm(x,factor(y),scaled=FALSE, type = "C-svc", kernel=kfunction.k(), C = C)
alpha(tmp)[[1]]
ind<-alphaindex(tmp)[[1]]
x.s<-x[ind,] ; y.s<-y[ind]
w.class.k<-t(alpha(tmp)[[1]]*y.s)%*%x.s
w.class.k

El resultado de esta operación es igual al siguiente. Sin embargo, no es así.

#
###use "vanilladot"
#
l<-0.1 ; C<-1/(2*l)
tmp1<-ksvm(x,factor(y),scaled=FALSE, type = "C-svc", kernel="vanilladot", C = C)
alpha(tmp1)[[1]]
ind1<-alphaindex(tmp1)[[1]]
x.s<-x[ind1,] ; y.s<-y[ind1]
w.tmp1<-t(alpha(tmp1)[[1]]*y.s)%*%x.s
w.tmp1

Creo que tal vez este problema está relacionado con la clase del kernel. Cuando la clase se establece en "kernel", se produce este problema. Sin embargo, cuando la clase se establece en "vanillakernel", el resultado de ksvm usando el kernel definido por el usuario es igual al de ksvm usando "vanilladot" que se construye en Kernlab.

#
###vanilla kernel with class "vanillakernel"
#
kfunction.v.k <- function(){
   k <- function (x,y){crossprod(x,y)}
   class(k) <- "vanillakernel"  
   k}
# The only difference between kfunction.k and kfunction.v.k is "class(k)".
l<-0.1 ; C<-1/(2*l)

###use kfunction.v.k
tmp<-ksvm(x,factor(y),scaled=FALSE, type = "C-svc", kernel=kfunction.v.k(), C = C)
alpha(tmp)[[1]]
ind<-alphaindex(tmp)[[1]]
x.s<-x[ind,] ; y.s<-y[ind]
w.class.v.k<-t(alpha(tmp)[[1]]*y.s)%*%x.s
w.class.v.k

No entiendo por qué el resultado es diferente de "vanilladot", cuando se configura la clase en "kernel".

¿Hay algún error en mi operación?

Respuestas a la pregunta(1)

Su respuesta a la pregunta