kernelMatrix {kernlab}R Documentation

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

## S4 method for signature 'kernel':
kernelMatrix(kernel, x, y = NULL)

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

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

## S4 method for signature '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.

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:

(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.

Value

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

Author(s)

Alexandros Karatzoglou
alexandros.karatzoglou@ci.tuwien.ac.at

See Also

rbfdot, polydot, tanhdot, vanilladot

Examples

## 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)

[Package kernlab version 0.6-2 Index]