Saltar al contenido

Modelado de conjuntos con R

El ensacado, o agregación de bootstrap, es un método de conjunto que implica el entrenamiento del mismo algoritmo muchas veces utilizando diferentes subconjuntos muestreados de los datos de entrenamiento. La predicción de salida final se promedia entonces a través de las predicciones de todos los submodelos. Las dos técnicas de ensamblaje más populares de embolsado son los árboles de decisión embolsados y el bosque aleatorio.

Árbol de decisión en bolsas

Este método funciona mejor con algoritmos de alta variabilidad, por ejemplo, los árboles de decisión. Comenzamos poniendo la semilla en la primera línea del código. La segunda línea especifica los parámetros utilizados para controlar el proceso de entrenamiento del modelo, mientras que la tercera línea entrena el algoritmo del árbol embolsado. El argumento method=»treebag» especifica el algoritmo. La cuarta a la sexta línea de código generan predicciones sobre los datos de la prueba, crean la matriz de confusión y calculan la precisión, que resulta ser del 79 por ciento. Esto no es mejor que el modelo de regresión logística.

Modelado de conjuntos con R
Modelado de conjuntos con R
123456789101112set.seed(100)control1 <- trainControl(sampling="rose",method="repeatedcv", number=5, repeats=5)bagCART_model <- train(approval_status ~. , data=tren, method="treebag", metric="Precisión", trControl=control1)#Predicciones en el set de pruebaspredictTest = predict(bagCART_model, newdata = test)# Matriz de confusión en el set de pruebas(test$approval_status, predictTest)142/nrow(test) #Precisión - 78.9%

{r}

Salida:

123456 predictTest No Sí No 33 24 Sí 14 109[1] 0.7888889

Bosque al azar

Random Forest es una extensión de los árboles de decisión en bolsas, donde las muestras del conjunto de datos de entrenamiento se toman con reemplazo. Los árboles se construyen con el objetivo de reducir la correlación entre los árboles de decisión individuales.

Seguimos los mismos pasos que arriba, con la excepción de que mientras entrenamos el algoritmo, establecemos method=»rf» para especificar que se debe construir un modelo de bosque aleatorio. La precisión del conjunto de bosque aleatorio es del 92 por ciento, una mejora significativa respecto a los modelos construidos anteriormente.

1234567891011set.seed(100)control1 <- trainControl(sampling="rose",method="repeatedcv", number=5, repeats=5)rf_model <- train(approval_status ~. , data=tren, method="rf", metric="Accuracy", trControl=control1)predictTest = predict(rf_model, newdata = test, type = "raw")# Matriz de confusión en la tabla de pruebas(test$approval_status, predictTest)165/nrow(test) #Accuracy - 91.67%

{r}

Salida:

1[1] 0.9166667