predict.train
Extract predictions and class probabilities from train objects
These functions can be used for a single train
object or to loop through a number of train
objects to calculate the
training and test data predictions and class probabilities.
- Keywords
- manip
Usage
## S3 method for class 'list':
predict(object, ...)## S3 method for class 'train':
predict(object, newdata = NULL, type = "raw", ...)
extractPrediction(models,
testX = NULL, testY = NULL,
unkX = NULL,
unkOnly = !is.null(unkX) & is.null(testX),
verbose = FALSE)
extractProb(models,
testX = NULL, testY = NULL,
unkX = NULL,
unkOnly = !is.null(unkX) & is.null(testX),
verbose = FALSE)
Arguments
- object
- For
predict.train
, an object of classtrain
. Forpredict.list
, a list of objects of classtrain
. - newdata
- an optional set of data to predict on. If
NULL
, then the original training data are used - type
- either "raw" or "prob", for the number/class predictions or class probabilities, respectively. Class probabilities are not available for all classification models
- models
- a list of objects of the class
train
. The objects must have been generated withfitBest = FALSE
andreturnData = TRUE
. - testX
- an optional set of data to predict
- testY
- an optional outcome corresponding to the data given in
testX
- unkX
- another optional set of data to predict without known outcomes
- unkOnly
- a logical to bypass training and test set predictions. This is useful if speed is needed for unknown samples.
- verbose
- a logical for printing messages
- ...
- additional arguments to be passed to other methods
Details
These functions are wrappers for the specific prediction functions in each modeling package. In each case, the optimal tuning values given in the tuneValue
slot of the finalModel
object are used to predict.
To get simple predictions for a new data set, the predict
function can be used.
To get predictions for a series of models at once, a list of train
objects can be passes to the predict
function and a list of model predictions will be returned.
The two extraction functions can be used to get the predictions and observed outcomes at once for the training, test and/or unknown samples at once in a single data frame (instead of a list of just the predictions). These objects can then be passes to plotObsVsPred
or plotClassProbs
.
Value
- For
predict.train
, a vector of predictions iftype = "raw"
or a data frame of class probabilites fortype = "probs"
. In the latter case, there are columns for each class.For
predict.list
, a list results. Each element is produced bypredict.train
.For
extractPrediction
, a data frame with columns: obs the observed training and test data pred predicted values model the type of model used to predict dataType "Training", "Test" or "Unknown" depending on what was specified - For
extractProb
, a data frame. There is a column for each class containing the probabilities. The remaining columns are the same as above (although thepred
column is the predicted class)
References
Kuhn (2008), ``Building Predictive Models in R Using the caret'' (
See Also
Examples
library(mlbench)
data(Satellite)
numSamples <- dim(Satellite)[1]
set.seed(716)
varIndex <- 1:numSamples
trainSamples <- sample(varIndex, 150)
varIndex <- (1:numSamples)[-trainSamples]
testSamples <- sample(varIndex, 100)
varIndex <- (1:numSamples)[-c(testSamples, trainSamples)]
unkSamples <- sample(varIndex, 50)
trainX <- Satellite[trainSamples, -37]
trainY <- Satellite[trainSamples, 37]
testX <- Satellite[testSamples, -37]
testY <- Satellite[testSamples, 37]
unkX <- Satellite[unkSamples, -37]
knnFit <- train(trainX, trainY, "knn")
rpartFit <- train(trainX, trainY, "rpart")
predict(knnFit)
predict(knnFit, newdata = testX)
predict(knnFit, type = "prob")
bothModels <- list(
knn = knnFit,
tree = rpartFit)
predict(bothModels)
predTargets <- extractPrediction(
bothModels,
testX = testX,
testY = testY,
unkX = unkX)