install.
packages('caret')
library(readxl)
library(caret)
library(pROC)
library(corrplot)
nutrition <- read_excel("C:/Users/Bisnis/Downloads/baby_nutrition.xlsx", range = "D1:h201")
View(nutrition)
summary(nutrition)
[Link](123)
nutrition$status <- [Link](nutrition$status)
preProcess <- c("center","scale") # normalization
i <- createDataPartition(y = nutrition$status, times = 1, p = 0.8, list = FALSE)
training_set <- nutrition[i,]
test_set <- nutrition[-i,]
# 10-Fold cross-validation
trControl <- trainControl(method = "repeatedcv", number = 10, repeats = 10, classProbs = TRUE)
#**************************
# Naive Bayes (NB)
#**************************
nb <- train(status ~ ., method = "naive_bayes", data = training_set, metric = "Accuracy")
nb
# prediksi testing
test_set$pred <- predict(nb, test_set)
# confusion_matrix # library(caret)
nb_cm <- confusionMatrix(test_set$pred, test_set$status)
nb_cm
# for AUROC # library(pROC)
test_set$pred_nb <- predict(nb, test_set, type="prob")
auroc_nb = [Link](test_set$status, test_set$pred_nb)
auroc_nb
#**************************
# k-NN
#**************************
knn <- train(status ~ ., method="knn", data = training_set, preProcess = preProcess,
trControl=trControl, metric = "Accuracy")
knn # k = 5 (optimal)
# prediksi testing
test_set$pred <- predict(knn, test_set)
# confusion_matrix
knn_cm <- confusionMatrix(test_set$pred, test_set$status)
knn_cm
# AUROC
test_set$pred_knn <- predict(knn, test_set, type="prob")
auroc_knn = [Link](test_set$status, test_set$pred_knn)
auroc_knn
#**************************
# Decision Tree (DT)
#**************************
library(party)
fit <- rpart(status~., data = training_set, method = 'class', preProcess = preProcess)
summary(fit)
fit$[Link]
barplot(fit$[Link])
# plot DT
library(rattle)
fancyRpartPlot(fit)
# prediksi testing
prediksi_dt = predict(fit, newdata = test_set, type = "class")
# confusion matrix
dt_cm <- confusionMatrix(prediksi_dt, test_set$status)
dt_cm
# AUROC
test_set$pred_dt <- predict(fit, test_set, type = "prob")
auroc_dt = [Link](test_set$status, test_set$pred_dt)
auroc_dt
#**************************
# Random Forest (RF)
#**************************
library(randomForest)
model_rf <- randomForest([Link](status) ~ ., data=training_set, ntree=1000, mtry=4,
trControl=trControl)
model_rf
# prediksi testing
prediksi_rf <- predict(model_rf, test_set)
# confusion matrix
library(caret)
rf_cm <- confusionMatrix(prediksi_rf, test_set$status)
rf_cm
# AUROC
test_set$pred_rf <- predict(model_rf, test_set, type = "prob")
auroc_rf = [Link](test_set$status, test_set$pred_rf)
auroc_rf
#**************************
# (SVM)
#**************************
library(e1071)
model_svm <- svm([Link](status) ~ ., data=training_set, ntree=1000, mtry=4, preProcess =
preProcess, tuneLength = 5, trControl=trControl, metric = "ROC")
summary(model_svm)
prediksi_svm <- predict(model_svm, test_set)
svm_cm <- confusionMatrix(prediksi_svm, test_set$status)
svm_cm
# AUROC
test_set$pred_svm <- predict(model_svm, test_set, type = "prob", [Link] = TRUE)
auroc_svm = [Link](test_set$status, predictor=[Link](test_set$pred_svm),
direction="<")
auroc_svm
############### EOF
# Visualization (Orthogonality of PCs)
library(ggplot2)
library(psych)
library(dplyr)
# [Link](nutrition)
[Link](nutrition, bg = c("#4472C4", "#ED7D31", "#A5A5A5", "#FFC000")[nutrition$status],
pch=21, cex = 0.8, [Link]="#5B9BD5", stars=TRUE)
# Histogram
[Link]("Hmisc")
library(Hmisc)
par(mfrow = c(1, 4))
[Link](nutrition[1:4], col = "lightblue")
# Corrplot
par(mfrow = c(1,1), pty = "s")
corrplot(r, type = "lower", [Link] = 'black')