library(caret)
## Loading required package: lattice
## Loading required package: ggplot2
data(iris)
library(ggplot2)
table(iris$Species)
##
## setosa versicolor virginica
## 50 50 50
intrain<- createDataPartition(y=iris$Species,p=0.7,list=F)
training<- iris[intrain,]
testing<- iris[-intrain,]
dim(training)
## [1] 105 5
dim(testing)
## [1] 45 5
qplot(Petal.Width,Sepal.Width,colour=Species,data=training)
#You can find out the 3 cluster
library(caret)
modFit<- train(Species~.,method="rpart",data=training)
## Loading required package: rpart
#rpart is a tree method in caret package
print(modFit$finalModel)
## n= 105
##
## node), split, n, loss, yval, (yprob)
## * denotes terminal node
##
## 1) root 105 70 setosa (0.3333333 0.3333333 0.3333333)
## 2) Petal.Length< 2.45 35 0 setosa (1.0000000 0.0000000 0.0000000) *
## 3) Petal.Length>=2.45 70 35 versicolor (0.0000000 0.5000000 0.5000000)
## 6) Petal.Length< 4.75 31 0 versicolor (0.0000000 1.0000000 0.0000000) *
## 7) Petal.Length>=4.75 39 4 virginica (0.0000000 0.1025641 0.8974359) *
#You can find 3 node are significant
plot(modFit$finalModel,uniform=T,main="Classification Tree")
text(modFit$finalModel,use.n=T,all=T,cex=0.8)
#Prettier plots
library(rattle)
## Rattle: A free graphical interface for data mining with R.
## Version 3.4.1 Copyright (c) 2006-2014 Togaware Pty Ltd.
## Type 'rattle()' to shake, rattle, and roll your data.
fancyRpartPlot(modFit$finalModel)
#Predicting new values
predict(modFit,newdata=testing)
## [1] setosa setosa setosa setosa setosa setosa
## [7] setosa setosa setosa setosa setosa setosa
## [13] setosa setosa setosa versicolor versicolor versicolor
## [19] versicolor versicolor versicolor versicolor versicolor versicolor
## [25] virginica virginica versicolor versicolor versicolor versicolor
## [31] virginica virginica virginica versicolor virginica virginica
## [37] virginica virginica virginica virginica virginica virginica
## [43] virginica virginica virginica
## Levels: setosa versicolor virginica