Supervised Learning with Categorical Output
Overview
Teaching: 20 min
Exercises: 0 minQuestions
How to train a Machine Learning model with categorical output
Objectives
Learn to use different Regression algorithm for Machine Learning training
6 Supervised Learning training with Categorical output
Here we use the R sampled data named iris
data(iris)
6.1 Pre-processing data and treat missing value
Check missing value
sum(is.na(iris))
There are no missing value so we go ahead with visualize the important data
6.2 Visualize the important data
library(GGally)
ggpairs(iris,aes(colour=Species))

6.3 Split data into training and testing
indT <- createDataPartition(y=iris$Species,p=0.6,list=FALSE)
training <- iris[indT,]
testing <- iris[-indT,]
Let’s use all inputs data for modeling
6.4 Train model and predict with different algorithm
6.4.1 Train model using Linear Discriminant Analyst:
ModFit_lda <- train(Species~.,data=training,
preProcess=c("center","scale"),
method="lda")
predict_lda <- predict(ModFit_lda,testing)
6.4.2 Train model using Naive Bayes
ModFit_nb <- train(Species~.,data=training,method="nb")
predict_nb <- predict(ModFit_nb,testing)
6.4.3 Train model using Gradient Boosting Machine
ModFit_GBM <- train(Species~.,data=training,method="gbm",verbose=FALSE)
predict_GBM <- predict(ModFit_GBM,testing)
6.4.4 Train model using Random Forest
ModFit_rf <- train(Species~.,data=training,method="rf",prox=TRUE)
predict_rf <- predict(ModFit_rf,testing)
6.4.5 Train model using Artificial Neural Network
ModNN <- neuralnet(Species~.,training, hidden=c(4,3),linear.output = FALSE)
plot(ModNN)
predict_ann <- compute(ModNN,testing)
# Rescale to original:
yann=data.frame("yhat"=ifelse(max.col(predict_ann$net.result)==1, "setosa",
ifelse(max.col(predict_ann$net.result)==2, "versicolor", "virginica")))

6.5 Evaluate model output
For continuous, we use postResample:
confusionMatrix(predict_lda,testing$Species)
confusionMatrix(predict_nb,testing$Species)
confusionMatrix(predict_GBM,testing$Species)
confusionMatrix(predict_rf,testing$Species)
confusionMatrix(yann$yhat,testing$Species)
Key Points
categorical output