puede usarse el siguiente script:
# MODELO BAGGING
#------------------------------------------------------------------- # Carga Package y datos library(C50);data(churn); library(rpart) library(foreach) Train <-churnTrain[,1:20] Test <-churnTest [,1:20] Clase <-unique(churnTrain$churn) Iteraciones <- 45 #------------------------------------------------------------------ # Crea el modelo Bagging con multiples arboles de decision modelo<- foreach(i=1:Iteraciones) %do% { muestra <- sample(nrow(Train), size=floor((nrow(Train)*.5))) rpart(churn ~ .,data=Train[muestra,]) } #----------------------------------------------------------------- # Acumula la prediccion de cada arbol en una tabla # Usando el modelo ya creado y guardado previamente Prediccion <-as.data.frame( foreach(i=1:Iteraciones,.combine=cbind) %do% {predict(modelo[[i]], Test)} ) # Calcula la prediccion final usando tecnica de Voto Mayoritario Prediccion$Cantidad_yes <- rowSums(Prediccion [, 1:Iteraciones] == 1) Prediccion$Cantidad_no <- rowSums(Prediccion [, 1:Iteraciones] == 2) Prediccion$Prediccion <- Clase[with(Prediccion,(Cantidad_yes>Cantidad_no)+1)] MC <- table(Test[, "churn"],Prediccion[,"Prediccion"]) Efectividad <- MC[1,1]/(MC[1,1]+MC[1,2]); print(MC) print(Efectividad)
No hay comentarios:
Publicar un comentario