Incomplete Cholesky decomposition
inchol
computes the incomplete Cholesky decomposition
of the kernel matrix from a data matrix.
inchol(x, kernel="rbfdot", kpar=list(sigma=0.1), tol = 0.001, maxiter = dim(x)[1], blocksize = 50, verbose = 0)
x |
The data matrix indexed by row |
kernel |
the kernel function used in training and predicting.
This parameter can be set to any function, of class
The kernel parameter can also be set to a user defined function of class kernel by passing the function name as an argument. |
kpar |
the list of hyper-parameters (kernel parameters). This is a list which contains the parameters to be used with the kernel function. Valid parameters for existing kernels are :
Hyper-parameters for user defined kernels can be passed through the kpar parameter as well. |
tol |
algorithm stops when remaining pivots bring less accuracy
then |
maxiter |
maximum number of iterations and columns in Z |
blocksize |
add this many columns to matrix per iteration |
verbose |
print info on algorithm convergence |
An incomplete cholesky decomposition calculates Z where K= ZZ' K being the kernel matrix. Since the rank of a kernel matrix is usually low, Z tends to be smaller then the complete kernel matrix. The decomposed matrix can be used to create memory efficient kernel-based algorithms without the need to compute and store a complete kernel matrix in memory.
An S4 object of class "inchol" which is an extension of the class "matrix". The object is the decomposed kernel matrix along with the slots :
pivots |
Indices on which pivots where done |
diagresidues |
Residuals left on the diagonal |
maxresiduals |
Residuals picked for pivoting |
slots can be accessed either by object@slot
or by accessor functions with the same name (e.g., pivots(object))
Alexandros Karatzoglou (based on Matlab code by
S.V.N. (Vishy) Vishwanathan and Alex Smola)
alexandros.karatzoglou@ci.tuwien.ac.at
Francis R. Bach, Michael I. Jordan
Kernel Independent Component Analysis
Journal of Machine Learning Research 3, 1-48
http://www.jmlr.org/papers/volume3/bach02a/bach02a.pdf
data(iris) datamatrix <- as.matrix(iris[,-5]) # initialize kernel function rbf <- rbfdot(sigma=0.1) rbf Z <- inchol(datamatrix,kernel=rbf) dim(Z) pivots(Z) # calculate kernel matrix K <- crossprod(t(Z)) # difference between approximated and real kernel matrix (K - kernelMatrix(kernel=rbf, datamatrix))[6,]
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.