#NEWLINE# @ staticmethod #NEWLINE# def get_kernel( X , Y , type = 'linear' , param = 1.0 ) : #NEWLINE# #INDENT# 'Calculates a kernel given the data X and Y (dims x exms)' #NEWLINE# ( Xdims , Xn ) = X . size #NEWLINE# ( Ydims , Yn ) = Y . size #NEWLINE# kernel = matrix ( 1.0 ) #NEWLINE# if ( type == 'linear' ) : #NEWLINE# #INDENT# print ( 'Calculating linear kernel with size {0}x{1}.' . format ( Xn , Yn ) ) #NEWLINE# kernel = matrix ( [ dotu ( X [ : , i ] , Y [ : , j ] ) for j in range ( Yn ) for i in range ( Xn ) ] , ( Xn , Yn ) , 'd' ) #NEWLINE# #UNINDENT# if ( type == 'rbf' ) : #NEWLINE# #INDENT# print ( 'Calculating Gaussian kernel with size {0}x{1}.' . format ( Xn , Yn ) ) #NEWLINE# kernel = matrix ( [ dotu ( ( X [ : , i ] - Y [ : , j ] ) , ( X [ : , i ] - Y [ : , j ] ) ) for j in range ( Yn ) for i in range ( Xn ) ] , ( Xn , Yn ) ) #NEWLINE# kernel = exp ( ( ( - param ) * kernel ) ) #NEWLINE# #UNINDENT# return kernel