Learn R Programming

kernlab (version 0.6-2)

kernelMatrix: Kernel Matrix functions

Description

kernelMatrix calculates the kernel matrix $K_{ij} = k(x_i,x_j)$ or $K_{ij} = k(x_i,y_j)$. kernelPol computes the quadratic kernel expression $H = z_i z_j k(x_i,x_j)$, $H = z_i k_j k(x_i,y_j)$. kernelMult calculates the kernel expansion $f(x_i) = \sum_{i=1}^m z k(x_i,x_j)$ kernelFast computes the kernel matrix this function identical to kernelMatrix, except that it also requires the squared norm of the first argument as additional input.

Usage

## S3 method for class 'kernel':
kernelMatrix(kernel, x, y = NULL)

## S3 method for class 'kernel': kernelPol(kernel, x, y = NULL, z, k = NULL)

## S3 method for class 'kernel': kernelMult(kernel, x, y = NULL, z, blocksize = 256)

## S3 method for class 'kernel': kernelFast(kernel, x, y, a)

Arguments

kernel
the kernel function to be used to calculate the kernel matrix. This has to be a function of class kernel, i.e. either one of the build in kernel functions or a fnction taking two vector arguments and returning a scalar.
x
a data matrix to be used to calculate the kernel matrix
y
second data matrix to calculate the kernel matrix
z
a suitable vector or matrix
k
a suitable vector or matrix
a
the squared norm of x e.g. rowSums(x^2)
blocksize
the kernel expansion computations are done block wise to avoid storing the kernel matrix into memory. blocksize defines the size of the computational blocks.

Value

  • kernelMatrix returns a symmetric diagonal semi-definite matrix. kernelPol returns a matrix. kernelMult usually returns a one-column matrix.

Details

Common functions used during kernel based computations. The kernel parameter can be set to any function, of class kernel, which computes a dot product between two vector arguments. kernlab provides the most popular kernel functions which can be initialized by using the following functions:
  • rbfdotRadial Basis kernel function
  • polydotPolynomial kernel function
  • vanilladotLinear kernel function
  • tanhdotHyperbolic tangent kernel function
  • laplacedotLaplacian kernel function
  • besseldotBessel kernel function
  • anovadotANOVA RBF kernel function
  • splinedotthe Spline kernel
(see example.)

kernelFast is mainly used in situations where colums of the kernel matrix are computed per invocation. In these cases, evaluating the norm of each row-entry over and over again would cause significant computational overhead.

See Also

rbfdot, polydot, tanhdot, vanilladot

Examples

Run this code
## use the spam data
data(spam)
dt <- as.matrix(spam[c(10:20,3000:3010),-58])

## initialize kernel function 
rbf <- rbfdot(sigma = 0.05)
rbf

## calculate kernel matrix
kernelMatrix(rbf, dt)

yt <- as.matrix(as.integer(spam[c(10:20,3000:3010),58]))
yt[yt==2] <- -1

## calculate the quadratic kernel expression
kernelPol(rbf, dt, ,yt)

## calculate the kernel expansion
kernelMult(rbf, dt, ,yt)

Run the code above in your browser using DataLab