martes, 3 de febrero de 2015

Modelo Bagging

Si se quiere crear un modelo bagging (ver concepto de bagging AQUI) para predecir distintos set de datos, teniendo algo como:











































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