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 [ ]: