INFINITY -数学とかプログラミングとか-

統計とプログラムを使って役に立たせたい

TeX用コマンド入力を支援するための辞書をご利用ください。
sanctuary's blogは,適当なことが書いてあります。

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