predict.rpusvm {rpud}R Documentation

Predict Method for Support Vector Machines

Description

The predict.rpusvm function predicts values based upon an SVM model trained by rpusvm in the non-free rpudplus add-on.

This method is not supported in the free rpud package.

Usage

## S3 method for class 'rpusvm'
predict(object, newdata, decision.values = FALSE,
probability = FALSE, ..., na.action = na.omit, verbose = TRUE)

Arguments

object

An S3 object that inherits from rpusvm class.

newdata

An object containing the new input data: either a matrix or a sparse matrix (object of class Matrix provided by the Matrix package, or of class matrix.csr provided by the SparseM package. A vector will be transformed to a n x 1 matrix.

decision.values

Logical controlling whether the decision values of all binary classifiers computed in multiclass classification shall be computed and returned.

probability

Logical indicating whether class probabilities should be computed and returned. Only possible if the model was fitted with the probability option enabled.

na.action

A function to specify the action to be taken if ‘NA’s are found. The default action is na.omit, which leads to rejection of cases with missing values on any required variable. An alternative is na.fail, which causes an error if NA cases are found. (NOTE: If given, this argument must be named.)

...

Currently not used.

verbose

logical indicating whether progress information should be displayed. (default: TRUE)

Value

A vector of predicted values (for classification: a vector of labels, for density estimation: a logical vector). If decision.value is TRUE, the vector gets a "decision.values" attribute containing a n x c matrix (n number of predicted values, c number of classifiers) of all c binary classifiers' decision values. There are k * (k - 1) / 2 classifiers (k number of classes). The colnames of the matrix indicate the labels of the two classes. If probability is TRUE, the vector gets a "probabilities" attribute containing a n x k matrix (n number of predicted values, k number of classes) of the class probabilities.

Note

If the training set was scaled by rpusvm (done by default), the new data is scaled accordingly using scale and center of the training data.

Author(s)

Chi Yau (based on R doc of predict.svm in e1071 by David Meyer)
chi.yau@r-tutor.com

See Also

rpusvm, e1071::predict.svm

Examples

## Not run: 
# copied from e1071
library(rpud)

data(iris)
attach(iris)

## classification mode
# default with factor response:
model <- rpusvm(Species ~ ., data = iris)

# alternatively the traditional interface:
x <- subset(iris, select = -Species)
y <- Species
model <- rpusvm(x, y, probability = TRUE) 

print(model)
summary(model)

# test with train data
pred <- predict(model, x)
# (same as:)
pred <- fitted(model)

# compute decision values and probabilites
pred <- predict(model, x, decision.values = TRUE, probability = TRUE)
attr(pred, "decision.values")[1:4,]
attr(pred, "probabilities")[1:4,]

## try regression mode on two dimensions

# create data
x <- seq(0.1, 5, by = 0.05)
y <- log(x) + rnorm(x, sd = 0.2)

# estimate model and predict input values
m   <- rpusvm(x, y)
new <- predict(m, x)

# visualize
plot   (x, y)
points (x, log(x), col = 2)
points (x, new, col = 4)

## density-estimation

# create 2-dim. normal with rho=0:
X <- data.frame(a = rnorm(1000), b = rnorm(1000))
attach(X)

# traditional way:
m <- rpusvm(X, gamma = 0.1)

# formula interface:
m <- rpusvm(~., data = X, gamma = 0.1)
# or:
m <- rpusvm(~ a + b, gamma = 0.1)

# test:
newdata <- data.frame(a = c(0, 4), b = c(0, 4))
predict (m, newdata)

# visualize:
plot(X, col = 1:1000 %in% m$index + 1, xlim = c(-5,5), ylim=c(-5,5))
points(newdata, pch = "+", col = 2, cex = 5)

## End(Not run)

[Package rpud version 0.7.2 Index]