library(caret)
## Loading required package: lattice
## Loading required package: ggplot2
library(kernlab)
##
## Attaching package: 'kernlab'
## The following object is masked from 'package:ggplot2':
##
## alpha
data(iris)
inTrain <- createDataPartition(y = iris$Species, p = 0.80, list = FALSE)
trainingData <- iris[inTrain,]
testingData <- iris[-inTrain,]
dim(trainingData)
## [1] 120 5
dim(testingData)
## [1] 30 5
set.seed(13)
model <- train(Species ~., data = trainingData, method = "rf")
model
## Random Forest
##
## 120 samples
## 4 predictor
## 3 classes: 'setosa', 'versicolor', 'virginica'
##
## No pre-processing
## Resampling: Bootstrapped (25 reps)
## Summary of sample sizes: 120, 120, 120, 120, 120, 120, ...
## Resampling results across tuning parameters:
##
## mtry Accuracy Kappa
## 2 0.9339057 0.8997140
## 3 0.9332980 0.8988672
## 4 0.9332980 0.8988901
##
## Accuracy was used to select the optimal model using the largest value.
## The final value used for the model was mtry = 2.
prediction <- predict(model, newdata = testingData)
confusionMatrix(prediction,testingData$Species)
## Confusion Matrix and Statistics
##
## Reference
## Prediction setosa versicolor virginica
## setosa 10 0 0
## versicolor 0 10 0
## virginica 0 0 10
##
## Overall Statistics
##
## Accuracy : 1
## 95% CI : (0.8843, 1)
## No Information Rate : 0.3333
## P-Value [Acc > NIR] : 4.857e-15
##
## Kappa : 1
##
## Mcnemar's Test P-Value : NA
##
## Statistics by Class:
##
## Class: setosa Class: versicolor Class: virginica
## Sensitivity 1.0000 1.0000 1.0000
## Specificity 1.0000 1.0000 1.0000
## Pos Pred Value 1.0000 1.0000 1.0000
## Neg Pred Value 1.0000 1.0000 1.0000
## Prevalence 0.3333 0.3333 0.3333
## Detection Rate 0.3333 0.3333 0.3333
## Detection Prevalence 0.3333 0.3333 0.3333
## Balanced Accuracy 1.0000 1.0000 1.0000
plot(model$finalModel)

plot(varImp(model), top = 10)
