kernel function
ノルム:
norm=function(x){ return(sqrt(t(x)%*%x)) }
線形カーネル(標準内積)
linearKernel=function(x1,x2){ return (t(x1)%*%x2) } x1=c(1,2) x2=c(3,4) linearKernel(x1,x2)
>11
正規化線形カーネル (normalized linear kernel)
normalizedLinearKernel=function(x1,x2){ value=(t(x1)%*%x2)/(norm(x1)*norm(x2)) return (value) } x1=c(1,2) x2=c(3,4) normalizedLinearKernel(x1,x2)
>0.98387
ガウスカーネル
(人によって
exp((-sigma*norm(xj-xk)^2))
などと定義したりするが、そのときはsigmaの部分を変えれば(・∀・)イイ!!)
gausskernel=function(xj,xk,sigma){ num=exp((-norm(xj-xk)^2)/(2*sigma^2)) return(num) } xj=c(1,2) xk=c(3,4) gausskernel(xj,xk,2)
>0.3678794
多項式カーネル
polynomialKernel=function(x1,x2,p){ value=(1+t(x1)%*%x2)^p return (value) } x1=c(1,2) x2=c(3,4) p=5 polynomialKernel(x1,x2,p)
>248832
シグモイドカーネル (sigmoid kernel)
sigmoidKernel=function(x1,x2,c,theta){ value=tanh(c*(t(x1)%*%x2)+theta) return (value) } x1=c(1,2) x2=c(3,4) c=0.02 theta=0.3 tanh(c*(t(x1)%*%x2)+theta)
>0.4777
Copyright(c) Hiroshi Tashiro