Cleverson
July 16, 2019
This application uses the Iris Flower Data Set to build 2 prediction models. The outcome is iris specie and the predictors are morphologic variations. Based on sepal and petal dimensions entered by the user, the application shows the most probable iris specie. Both models present an accuracy of around 96%. For few cases, they show different outcomes (iris species).
To access the application: https://cleversonsch.shinyapps.io/myApp/
Source code can be find here: https://github.com/cleversonsch/Developing-Data-Products-Week4-Project-
head(iris) Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
summary(iris) Sepal.Length Sepal.Width Petal.Length Petal.Width
Min. :4.300 Min. :2.000 Min. :1.000 Min. :0.100
1st Qu.:5.100 1st Qu.:2.800 1st Qu.:1.600 1st Qu.:0.300
Median :5.800 Median :3.000 Median :4.350 Median :1.300
Mean :5.843 Mean :3.057 Mean :3.758 Mean :1.199
3rd Qu.:6.400 3rd Qu.:3.300 3rd Qu.:5.100 3rd Qu.:1.800
Max. :7.900 Max. :4.400 Max. :6.900 Max. :2.500
Species
setosa :50
versicolor:50
virginica :50
control <- trainControl(method="cv", number=10)
metric <- "Accuracy"
inTrain<-createDataPartition(y = iris$Species,p=0.8,list=FALSE)
training<- iris[inTrain,]
testing<- iris[-inTrain,]
model1 <- train(Species ~., data = training, method = "rf", metric = metric,
trControl = control)
model2 <- train(Species ~., data = training, method = "lda", metric = metric,
trControl = control)model1_prediction <- predict(model1, testing)
model2_prediction <- predict(model2, testing)accuracy_model1 <- confusionMatrix(model1_prediction, testing$Species)
accuracy_model1 <- accuracy_model1$overall['Accuracy']
accuracy_model2 <- confusionMatrix(model2_prediction, testing$Species)
accuracy_model2 <- accuracy_model2$overall['Accuracy']