# install.packages("rpart.plot", repos="http://c...content-available-to-author-only...o.com/", dependencies=TRUE)
# install.packages('rpart', dependencies=TRUE)
# install.packages('e1071', dependencies=TRUE)
# install.packages('aod', dependencies = TRUE)
# install.packages('ggplot2', dep = TRUE)
# install.packages('adabag',dependencies=T)
# install.packages("ada",dep = T)
# install.packages('randomForest', dependencies=TRUE)
# install.packages("gbm")
library(rpart)
library(rpart.plot)
library(class)
library(e1071)
library(aod)
library(mlbench)
library(ggplot2)
require(nnet)
library(adabag)
library(ada)
library(randomForest)
library(gbm)
DataSetList <- c('http://a...content-available-to-author-only...i.edu/ml/machine-learning-databases/wine/wine.data',
'http://a...content-available-to-author-only...i.edu/ml/machine-learning-databases/adult/adult.data',
'http://a...content-available-to-author-only...i.edu/ml/machine-learning-databases/breast-cancer-wisconsin/wdbc.data',
'http://a...content-available-to-author-only...i.edu/ml/machine-learning-databases/car/car.data',
'http://a...content-available-to-author-only...i.edu/ml/machine-learning-databases/haberman/haberman.data')
classvar <- c(1,15,2,7,4)
for(j in 1:5)
{
j=1
d=read.csv(DataSetList[j],header = FALSE)
d[ is.na(d) ] <- 0
d[d == "?"] <- 0
apply(d,2,function(x) sum(is.na(x)))
set.seed(100)
bagging_accuracy <- 1:10
adaboost_accuracy <- 1:10
gboosting_accuracy <- 1:10
forest_accuracy <- 1:10
knn_accuracy <- 1:10
d<-d[sample(nrow(d)),]
folds <- cut(seq(1,nrow(d)),breaks=10,labels=FALSE)
for(i in 1:10)
{
testIndexes <- which(folds==i,arr.ind=TRUE)
testData <- d[testIndexes, ]
trainingData <- d[-testIndexes, ]
trainingData[trainingData == "?"] <- NA
trainingData<- trainingData[complete.cases(trainingData),]
testData[testData == "?"] <- NA
testData<- testData[complete.cases(testData), ]
Class<-as.factor(trainingData[,classvar[j]])
#-----------Bagging
model <- bagging(Class ~ ., data=trainingData[,-classvar[j]],coob=TRUE)
p=predict(model,testData[,-classvar[j]])
accuracy_bag <- sum(testData[,classvar[j]]==p)/length(p)*100
bagging_accuracy[i] <- accuracy_bag
#cat("Method = ", "Bagging",", accuracy= ", accuracy_bag,"\n")
#-----------ADA Boosting
model <- boosting(Class ~ ., data = trainingData[,-classvar[j]], boos=TRUE, mfinal=20,coeflearn='Breiman')
p=predict(model,testData[,-classvar[j]])
accuracy_boost <- sum(testData[,classvar[j]]==p)/length(p)*100
adaboosting_accuracy[i] <- accuracy_boost
#cat("Method = ", "Boosting",", accuracy= ", accuracy_boost,"\n")
#------------Gradient Boosting
gbm = gbm(Class ~ ., data=trainingData[,-classvar[j]], n.trees=1000,shrinkage=0.01,distribution="gaussian",interaction.depth=7,bag.fraction=0.9,cv.fold=10,n.minobsinnode = 50)
pred <- predict(gbm, newdata=testData[,-classvar[j]],OOB=TRUE, type = "response")
accuracy_gboost <- sum(testData[,classvar[j]]==round(pred))/length(pred)*100
gboosting_accuracy[i] <- accuracy_gboost
# cat("Method = ", "Gradient Boosting",", accuracy= ", accuracy_gboost,"\n")
#-----------kNN----------
predicted_knn <- knn(trainingData[,-classvar[j]], testData[,-classvar[j]],Class, k =9)
accuracy_knn <- sum(predicted_knn == testData[,classvar[j]])/length(predicted_knn)*100
knn_accuracy[i] <- accuracy_knn
# cat("Method = ", "Knn",", accuracy= ", accuracy_knn,"\n")
#-----------Random Forest
fit <- randomForest(Class ~ ., data=trainingData[,-classvar[j]], mtry=3,importance=TRUE, na.action=na.omit)
pred <- predict(fit, newdata=testData[,-classvar[j]],OOB=TRUE, type = "response")
accuracy_forest <- sum(testData[,classvar[j]]==pred)/length(pred)*100
forest_accuracy[i] <- accuracy_forest
# cat("Method = ", "Random Forest",", accuracy= ", accuracy_forest,"\n")
cat("\n")
}
acc_forest <- mean(forest_accuracy)
acc_knn <- mean(knn_accuracy)
acc_gboost <- mean(gboosting_accuracy)
acc_boost <- mean(adaboost_accuracy)
#acc_bag <- mean(bagging_accuracy)
cat("Total Accuracy-")
cat("Data Set : ",j,"\n")
cat("Method = ", "Random Forest",", accuracy= ", acc_forest,"\n")
cat("Method = ", "Knn",", accuracy= ", acc_knn,"\n")
cat("Method = ", "Gradient Boosting",", accuracy= ", acc_gboost,"\n")
cat("Method = ", "Ada Boosting",", accuracy= ", acc_boost,"\n")
cat("Method = ", "Bagging",", accuracy= ", acc_bag,"\n")
}
IyBpbnN0YWxsLnBhY2thZ2VzKCJycGFydC5wbG90IiwgcmVwb3M9Imh0dHA6Ly9jLi4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5vLmNvbS8iLCBkZXBlbmRlbmNpZXM9VFJVRSkKIyBpbnN0YWxsLnBhY2thZ2VzKCdycGFydCcsIGRlcGVuZGVuY2llcz1UUlVFKQojIGluc3RhbGwucGFja2FnZXMoJ2UxMDcxJywgZGVwZW5kZW5jaWVzPVRSVUUpCiMgaW5zdGFsbC5wYWNrYWdlcygnYW9kJywgZGVwZW5kZW5jaWVzID0gVFJVRSkgCiMgaW5zdGFsbC5wYWNrYWdlcygnZ2dwbG90MicsIGRlcCA9IFRSVUUpCiMgaW5zdGFsbC5wYWNrYWdlcygnYWRhYmFnJyxkZXBlbmRlbmNpZXM9VCkKIyBpbnN0YWxsLnBhY2thZ2VzKCJhZGEiLGRlcCA9IFQpCiMgaW5zdGFsbC5wYWNrYWdlcygncmFuZG9tRm9yZXN0JywgZGVwZW5kZW5jaWVzPVRSVUUpCiMgaW5zdGFsbC5wYWNrYWdlcygiZ2JtIikKCmxpYnJhcnkocnBhcnQpCmxpYnJhcnkocnBhcnQucGxvdCkKbGlicmFyeShjbGFzcykKbGlicmFyeShlMTA3MSkKbGlicmFyeShhb2QpCmxpYnJhcnkobWxiZW5jaCkKbGlicmFyeShnZ3Bsb3QyKQpyZXF1aXJlKG5uZXQpCmxpYnJhcnkoYWRhYmFnKQpsaWJyYXJ5KGFkYSkKbGlicmFyeShyYW5kb21Gb3Jlc3QpCmxpYnJhcnkoZ2JtKQoKCkRhdGFTZXRMaXN0IDwtIGMoJ2h0dHA6Ly9hLi4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5pLmVkdS9tbC9tYWNoaW5lLWxlYXJuaW5nLWRhdGFiYXNlcy93aW5lL3dpbmUuZGF0YScsCiAgICAgICAgICAgICAgICAgJ2h0dHA6Ly9hLi4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5pLmVkdS9tbC9tYWNoaW5lLWxlYXJuaW5nLWRhdGFiYXNlcy9hZHVsdC9hZHVsdC5kYXRhJywKICAgICAgICAgICAgICAgICAnaHR0cDovL2EuLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLmkuZWR1L21sL21hY2hpbmUtbGVhcm5pbmctZGF0YWJhc2VzL2JyZWFzdC1jYW5jZXItd2lzY29uc2luL3dkYmMuZGF0YScsCiAgICAgICAgICAgICAgICAgJ2h0dHA6Ly9hLi4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5pLmVkdS9tbC9tYWNoaW5lLWxlYXJuaW5nLWRhdGFiYXNlcy9jYXIvY2FyLmRhdGEnLAogICAgICAgICAgICAgICAgICdodHRwOi8vYS4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4uaS5lZHUvbWwvbWFjaGluZS1sZWFybmluZy1kYXRhYmFzZXMvaGFiZXJtYW4vaGFiZXJtYW4uZGF0YScpCgpjbGFzc3ZhciA8LSBjKDEsMTUsMiw3LDQpCgpmb3IoaiBpbiAxOjUpCiAgewogIAogIGo9MQpkPXJlYWQuY3N2KERhdGFTZXRMaXN0W2pdLGhlYWRlciA9IEZBTFNFKQoKZFsgaXMubmEoZCkgXSA8LSAwCmRbZCA9PSAiPyJdIDwtIDAKYXBwbHkoZCwyLGZ1bmN0aW9uKHgpIHN1bShpcy5uYSh4KSkpCgpzZXQuc2VlZCgxMDApCgpiYWdnaW5nX2FjY3VyYWN5IDwtIDE6MTAKYWRhYm9vc3RfYWNjdXJhY3kgPC0gMToxMApnYm9vc3RpbmdfYWNjdXJhY3kgPC0gMToxMApmb3Jlc3RfYWNjdXJhY3kgPC0gMToxMAprbm5fYWNjdXJhY3kgPC0gMToxMAoKICBkPC1kW3NhbXBsZShucm93KGQpKSxdCiAgZm9sZHMgPC0gY3V0KHNlcSgxLG5yb3coZCkpLGJyZWFrcz0xMCxsYWJlbHM9RkFMU0UpCiAgZm9yKGkgaW4gMToxMCkKICB7CiAgICB0ZXN0SW5kZXhlcyA8LSB3aGljaChmb2xkcz09aSxhcnIuaW5kPVRSVUUpCiAgICB0ZXN0RGF0YSA8LSBkW3Rlc3RJbmRleGVzLCBdCiAgICB0cmFpbmluZ0RhdGEgPC0gZFstdGVzdEluZGV4ZXMsIF0KICAgIAogICAgdHJhaW5pbmdEYXRhW3RyYWluaW5nRGF0YSA9PSAiPyJdIDwtIE5BCiAgICB0cmFpbmluZ0RhdGE8LSB0cmFpbmluZ0RhdGFbY29tcGxldGUuY2FzZXModHJhaW5pbmdEYXRhKSxdCiAgICB0ZXN0RGF0YVt0ZXN0RGF0YSA9PSAiPyJdIDwtIE5BCiAgICB0ZXN0RGF0YTwtIHRlc3REYXRhW2NvbXBsZXRlLmNhc2VzKHRlc3REYXRhKSwgXQogICAgCiAgICBDbGFzczwtYXMuZmFjdG9yKHRyYWluaW5nRGF0YVssY2xhc3N2YXJbal1dKQogICAgCiAgICAjLS0tLS0tLS0tLS1CYWdnaW5nCiAgICBtb2RlbCA8LSBiYWdnaW5nKENsYXNzIH4gLiwgZGF0YT10cmFpbmluZ0RhdGFbLC1jbGFzc3ZhcltqXV0sY29vYj1UUlVFKQogICAgcD1wcmVkaWN0KG1vZGVsLHRlc3REYXRhWywtY2xhc3N2YXJbal1dKQogICAgYWNjdXJhY3lfYmFnIDwtIHN1bSh0ZXN0RGF0YVssY2xhc3N2YXJbal1dPT1wKS9sZW5ndGgocCkqMTAwCiAgICBiYWdnaW5nX2FjY3VyYWN5W2ldIDwtIGFjY3VyYWN5X2JhZwogICAgI2NhdCgiTWV0aG9kID0gIiwgIkJhZ2dpbmciLCIsIGFjY3VyYWN5PSAiLCBhY2N1cmFjeV9iYWcsIlxuIikKICAgIAogICAgCiAgICAjLS0tLS0tLS0tLS1BREEgQm9vc3RpbmcKICAgIG1vZGVsIDwtIGJvb3N0aW5nKENsYXNzIH4gLiwgZGF0YSA9IHRyYWluaW5nRGF0YVssLWNsYXNzdmFyW2pdXSwgYm9vcz1UUlVFLCBtZmluYWw9MjAsY29lZmxlYXJuPSdCcmVpbWFuJykKICAgIHA9cHJlZGljdChtb2RlbCx0ZXN0RGF0YVssLWNsYXNzdmFyW2pdXSkKICAgIGFjY3VyYWN5X2Jvb3N0IDwtIHN1bSh0ZXN0RGF0YVssY2xhc3N2YXJbal1dPT1wKS9sZW5ndGgocCkqMTAwCiAgICBhZGFib29zdGluZ19hY2N1cmFjeVtpXSA8LSBhY2N1cmFjeV9ib29zdAogICAgI2NhdCgiTWV0aG9kID0gIiwgIkJvb3N0aW5nIiwiLCBhY2N1cmFjeT0gIiwgYWNjdXJhY3lfYm9vc3QsIlxuIikgCiAgICAKICAgICMtLS0tLS0tLS0tLS1HcmFkaWVudCBCb29zdGluZwogICAgZ2JtID0gZ2JtKENsYXNzIH4gLiwgZGF0YT10cmFpbmluZ0RhdGFbLC1jbGFzc3ZhcltqXV0sIG4udHJlZXM9MTAwMCxzaHJpbmthZ2U9MC4wMSxkaXN0cmlidXRpb249ImdhdXNzaWFuIixpbnRlcmFjdGlvbi5kZXB0aD03LGJhZy5mcmFjdGlvbj0wLjksY3YuZm9sZD0xMCxuLm1pbm9ic2lubm9kZSA9IDUwKQogICAgcHJlZCA8LSBwcmVkaWN0KGdibSwgbmV3ZGF0YT10ZXN0RGF0YVssLWNsYXNzdmFyW2pdXSxPT0I9VFJVRSwgdHlwZSA9ICJyZXNwb25zZSIpCiAgICBhY2N1cmFjeV9nYm9vc3QgPC0gc3VtKHRlc3REYXRhWyxjbGFzc3ZhcltqXV09PXJvdW5kKHByZWQpKS9sZW5ndGgocHJlZCkqMTAwCiAgICBnYm9vc3RpbmdfYWNjdXJhY3lbaV0gPC0gYWNjdXJhY3lfZ2Jvb3N0CiAgICMgY2F0KCJNZXRob2QgPSAiLCAiR3JhZGllbnQgQm9vc3RpbmciLCIsIGFjY3VyYWN5PSAiLCBhY2N1cmFjeV9nYm9vc3QsIlxuIikKICAgIAogICAgIy0tLS0tLS0tLS0ta05OLS0tLS0tLS0tLQogICAgcHJlZGljdGVkX2tubiA8LSBrbm4odHJhaW5pbmdEYXRhWywtY2xhc3N2YXJbal1dLCB0ZXN0RGF0YVssLWNsYXNzdmFyW2pdXSxDbGFzcywgayA9OSkKICAgIGFjY3VyYWN5X2tubiA8LSBzdW0ocHJlZGljdGVkX2tubiA9PSB0ZXN0RGF0YVssY2xhc3N2YXJbal1dKS9sZW5ndGgocHJlZGljdGVkX2tubikqMTAwCiAgICBrbm5fYWNjdXJhY3lbaV0gPC0gYWNjdXJhY3lfa25uCiAgICMgY2F0KCJNZXRob2QgPSAiLCAiS25uIiwiLCBhY2N1cmFjeT0gIiwgYWNjdXJhY3lfa25uLCJcbiIpCiAgICAKICAgICMtLS0tLS0tLS0tLVJhbmRvbSBGb3Jlc3QKICAgIGZpdCA8LSByYW5kb21Gb3Jlc3QoQ2xhc3MgfiAuLCBkYXRhPXRyYWluaW5nRGF0YVssLWNsYXNzdmFyW2pdXSwgbXRyeT0zLGltcG9ydGFuY2U9VFJVRSwgbmEuYWN0aW9uPW5hLm9taXQpCiAgICBwcmVkIDwtIHByZWRpY3QoZml0LCBuZXdkYXRhPXRlc3REYXRhWywtY2xhc3N2YXJbal1dLE9PQj1UUlVFLCB0eXBlID0gInJlc3BvbnNlIikKICAgIGFjY3VyYWN5X2ZvcmVzdCA8LSBzdW0odGVzdERhdGFbLGNsYXNzdmFyW2pdXT09cHJlZCkvbGVuZ3RoKHByZWQpKjEwMAogICAgZm9yZXN0X2FjY3VyYWN5W2ldIDwtIGFjY3VyYWN5X2ZvcmVzdAogICAjIGNhdCgiTWV0aG9kID0gIiwgIlJhbmRvbSBGb3Jlc3QiLCIsIGFjY3VyYWN5PSAiLCBhY2N1cmFjeV9mb3Jlc3QsIlxuIikKICAgIAogICAgCiAgICBjYXQoIlxuIikKICAgIAogICAgCiAgfQogIAogIGFjY19mb3Jlc3QgPC0gbWVhbihmb3Jlc3RfYWNjdXJhY3kpCiAgYWNjX2tubiA8LSBtZWFuKGtubl9hY2N1cmFjeSkKICBhY2NfZ2Jvb3N0IDwtIG1lYW4oZ2Jvb3N0aW5nX2FjY3VyYWN5KQogIGFjY19ib29zdCA8LSBtZWFuKGFkYWJvb3N0X2FjY3VyYWN5KQogICNhY2NfYmFnIDwtIG1lYW4oYmFnZ2luZ19hY2N1cmFjeSkKICAKICBjYXQoIlRvdGFsIEFjY3VyYWN5LSIpCiAgY2F0KCJEYXRhIFNldCA6ICIsaiwiXG4iKQogIGNhdCgiTWV0aG9kID0gIiwgIlJhbmRvbSBGb3Jlc3QiLCIsIGFjY3VyYWN5PSAiLCBhY2NfZm9yZXN0LCJcbiIpCiAgY2F0KCJNZXRob2QgPSAiLCAiS25uIiwiLCBhY2N1cmFjeT0gIiwgYWNjX2tubiwiXG4iKQogIGNhdCgiTWV0aG9kID0gIiwgIkdyYWRpZW50IEJvb3N0aW5nIiwiLCBhY2N1cmFjeT0gIiwgYWNjX2dib29zdCwiXG4iKQogIGNhdCgiTWV0aG9kID0gIiwgIkFkYSBCb29zdGluZyIsIiwgYWNjdXJhY3k9ICIsIGFjY19ib29zdCwiXG4iKSAKICBjYXQoIk1ldGhvZCA9ICIsICJCYWdnaW5nIiwiLCBhY2N1cmFjeT0gIiwgYWNjX2JhZywiXG4iKQogIAp9CgoK