In [1]:
import numpy as np
import numpy.random as npr
import pylab as pl
%matplotlib inline
In [ ]:
# arc-cosine kernel
def arc_cosine_kernel(x,y,n=1):
#norm = lambda x,p=2:np.sum(x**p)**(1.0/p)
#x_norm = norm(x)
#y_norm = norm(y)
x_norm = np.sqrt(np.sum(x**2))
y_norm = np.sqrt(np.sum(y**2))
theta = np.arccos(x.dot(y) / (x_norm*y_norm)
xn = x_norm**n
yn = y_norm**n
Jn = (-1)**n * np.sin(theta)**(2n+1)
Jn*= ()**n
Jn*=(np.pi-theta)
return (1 / np.pi) * xn * yn * Jn
In [ ]: