0% found this document useful (0 votes)
3 views4 pages

ML-R Code

The document outlines a data analysis process using R, focusing on predicting baby nutrition status with various machine learning models including Naive Bayes, k-NN, Decision Tree, Random Forest, and SVM. It includes data preprocessing, model training, testing, and evaluation using confusion matrices and AUROC metrics. Additionally, it features data visualization techniques such as histograms and correlation plots.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views4 pages

ML-R Code

The document outlines a data analysis process using R, focusing on predicting baby nutrition status with various machine learning models including Naive Bayes, k-NN, Decision Tree, Random Forest, and SVM. It includes data preprocessing, model training, testing, and evaluation using confusion matrices and AUROC metrics. Additionally, it features data visualization techniques such as histograms and correlation plots.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

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')

You might also like