SVM becomes popular because of its success in handwritten digit recognition 1.1% test error rate for SVM.
library(e1071)
library(caret)
## Loading required package: lattice
## Loading required package: ggplot2
library(NLP)
##
## Attaching package: 'NLP'
## The following object is masked from 'package:ggplot2':
##
## annotate
library(tm)
data(iris)
iris$SpeciesClass[iris$Species=="versicolor"] <- "TRUE"
iris$SpeciesClass[iris$Species!="versicolor"] <- "FALSE"
trainPositive<-subset(iris,SpeciesClass=="TRUE")
testnegative<-subset(iris,SpeciesClass=="FALSE")
inTrain<-createDataPartition(1:nrow(trainPositive),p=0.6,list=FALSE)
trainpredictors<-trainPositive[inTrain,1:4]
trainLabels<-trainPositive[inTrain,6]
testPositive<-trainPositive[-inTrain,]
testPosNeg<-rbind(testPositive,testnegative)
testpredictors<-testPosNeg[,1:4]
testLabels<-testPosNeg[,6]
svm.model<-svm(trainpredictors,y=NULL,
type='one-classification',
nu=0.10,
scale=TRUE,
kernel="radial")
svm.predtrain<-predict(svm.model,trainpredictors)
svm.predtest<-predict(svm.model,testpredictors)
confTrain<-table(Predicted=svm.predtrain,Reference=trainLabels)
confTest<-table(Predicted=svm.predtest,Reference=testLabels)
confusionMatrix(confTest,positive='TRUE')
## Confusion Matrix and Statistics
##
## Reference
## Predicted FALSE TRUE
## FALSE 99 14
## TRUE 1 4
##
## Accuracy : 0.8729
## 95% CI : (0.799, 0.9271)
## No Information Rate : 0.8475
## P-Value [Acc > NIR] : 0.266948
##
## Kappa : 0.3015
## Mcnemar's Test P-Value : 0.001946
##
## Sensitivity : 0.22222
## Specificity : 0.99000
## Pos Pred Value : 0.80000
## Neg Pred Value : 0.87611
## Prevalence : 0.15254
## Detection Rate : 0.03390
## Detection Prevalence : 0.04237
## Balanced Accuracy : 0.60611
##
## 'Positive' Class : TRUE
##
print(confTrain)
## Reference
## Predicted TRUE
## FALSE 6
## TRUE 26
print(confTest)
## Reference
## Predicted FALSE TRUE
## FALSE 99 14
## TRUE 1 4