Learn R Programming

classmap (version 1.2.3)

makeKernel: Compute kernel matrix

Description

Computes kernel value or kernel matrix, where the kernel type is extracted from an svm trained by e1071::svm.

Usage

makeKernel(X1, X2 = NULL, svfit)

Value

the kernel matrix, of dimensions nrow(X1) by nrow(X2). When both X1 and X2 are vectors, the result is a single number.

Arguments

X1

first matrix (or vector) of coordinates.

X2

if not NULL, second data matrix or vector. If NULL, X2 is assumed equal to X1.

svfit

output from e1071::svm

.

Author

Raymaekers J., Rousseeuw P.J.

References

Raymaekers J., Rousseeuw P.J., Hubert M. (2021). Class maps for visualizing classification results. Technometrics, appeared online. tools:::Rd_expr_doi("10.1080/00401706.2021.1927849")(link to open access pdf)

See Also

makeFV

Examples

Run this code

library(e1071)
set.seed(1); X <- matrix(rnorm(200 * 2), ncol = 2)
X[1:100, ] <- X[1:100, ] + 2
X[101:150, ] <- X[101:150, ] - 2
y <- as.factor(c(rep("blue", 150), rep("red", 50))) # two classes
# We now fit an SVM with radial basis kernel to the data:
set.seed(1) # to make the result of svm() reproducible.
svmfit <- svm(y~.,  data = data.frame(X = X, y = y),  scale = FALSE,
             kernel = "radial", cost = 10, gamma = 1, probability = TRUE)
Kxx <- makeKernel(X, svfit = svmfit)
# The result is a square kernel matrix:
dim(Kxx) # 200 200
Kxx[1:5, 1:5]

# For more examples, we refer to the vignette:
if (FALSE) {
vignette("Support_vector_machine_examples")
}

Run the code above in your browser using DataLab