Cómo realizar el ensacado en R (paso a paso)

Cuando creamos un árbol de decisiones para un conjunto de datos determinado, solo usamos un conjunto de datos de entrenamiento para construir el modelo.

Sin embargo, la desventaja de utilizar un único árbol de decisión es que tiende a sufrir una gran variación . Es decir, si dividimos el conjunto de datos en dos mitades y aplicamos el árbol de decisión a ambas mitades, los resultados podrían ser bastante diferentes.

Un método que podemos usar para reducir la varianza de un solo árbol de decisión se conoce como ensacado , a veces denominado agregación bootstrap .

El ensacado funciona de la siguiente manera:

1. Tome b muestras de arranque del conjunto de datos original.

2. Construya un árbol de decisiones para cada muestra bootstrap.

3. Promedio de las predicciones de cada árbol para llegar a un modelo final.

Mediante la construcción de cientos o incluso miles de árboles de decisión individuales y tomando las predicciones promedio de todos los árboles, a menudo terminamos con un modelo empaquetado ajustado que produce una tasa de error de prueba mucho menor en comparación con un solo árbol de decisión.

Este tutorial proporciona un ejemplo paso a paso de cómo crear un modelo empaquetado en R.

Paso 1: cargue los paquetes necesarios

Primero, cargaremos los paquetes necesarios para este ejemplo:

biblioteca (dplyr)        # para la 
biblioteca de negociación de datos (e1071)        # para calcular la importancia de la variable 
biblioteca (intercalado)        # para la 
biblioteca de ajuste de modelos generales ( rpart
 )        # para ajustar la biblioteca de árboles de decisión (ipred)        # para ajustar los árboles de decisión empaquetados

Paso 2: ajuste el modelo embolsado

Para este ejemplo, usaremos un conjunto de datos R integrado llamado airquality que contiene mediciones de la calidad del aire en Nueva York en 153 días individuales.

#ver la estructura del conjunto de datos de calidad del aire
str (calidad del aire)

'data.frame': 153 obs. de 6 variables:
 $ Ozono: int 41 36 12 18 NA 28 23 19 8 NA ...
 $ Solar.R: int 190118149313 NA NA 299 99 19194 ...
 $ Viento: núm 7,4 8 12,6 11,5 14,3 14,9 8,6 13,8 20,1 8,6 ...
 $ Temp: int 67 72 74 62 56 66 65 59 61 69 ...
 $ Mes: int 5 5 5 5 5 5 5 5 5 5 ...
 $ Día: int 1 2 3 4 5 6 7 8 9 10 ...

El siguiente código muestra cómo ajustar un modelo empaquetado en R usando la función bagging () de la biblioteca ipred .

#Haga que este ejemplo sea reproducible
 set.seed (1)

#ajustar la bolsa modelo embolsada
 <- embolsado (
  fórmula = Ozono ~.,
  datos = calidad del aire,
  nbagg = 150 ,   
  coob = VERDADERO ,
  control = rpart. control (minplit = 2 , cp = 0 )
)

#display bolso modelo embolsado entallado


Embolsado de árboles de regresión con 150 réplicas de bootstrap 

Llame a: bagging.data.frame (fórmula = Ozone ~., Data = airquality, nbagg = 150, 
    coob = VERDADERO, control = rpart.control (minsplit = 2, cp = 0))

Estimación fuera de bolsa del error cuadrático medio de la raíz: 17.4973 

Tenga en cuenta que elegimos usar 150 muestras de arranque para construir el modelo empaquetado y especificamos que coob sea TRUE para obtener el error estimado fuera de la bolsa.

También usamos las siguientes especificaciones en la función rpart.control () :

  • minsplit = 2: Esto le dice al modelo que solo requiera 2 observaciones en un nodo para dividir.
  • cp = 0 . Este es el parámetro de complejidad. Al establecerlo en 0, no requerimos que el modelo pueda mejorar el ajuste general en ninguna cantidad para realizar una división.

Básicamente, estos dos argumentos permiten que los árboles individuales crezcan extremadamente profundo, lo que conduce a árboles con alta varianza pero bajo sesgo. Luego, cuando aplicamos el ensacado, podemos reducir la variación del modelo final mientras mantenemos el sesgo bajo.

A partir de la salida del modelo, podemos ver que el RMSE estimado fuera de la bolsa es 17.4973 . Ésta es la diferencia promedio entre el valor previsto para el ozono y el valor real observado.

Paso 3: visualizar la importancia de los predictores

Aunque los modelos en bolsas tienden a proporcionar predicciones más precisas en comparación con los árboles de decisión individuales, es difícil interpretar y visualizar los resultados de los modelos en bolsas ajustados.

Sin embargo, podemos visualizar la importancia de las variables predictoras calculando la reducción total en RSS (suma de cuadrados residual) debido a la división sobre un predictor dado, promediado sobre todos los árboles. Cuanto mayor sea el valor, más importante será el predictor.

El siguiente código muestra cómo crear una gráfica de importancia variable para el modelo empaquetado ajustado, usando la función varImp () de la biblioteca de intercalaciones :

#calcular la importancia de la variable
 VI <- data.frame (var = names (airquality [, - 1]), imp = varImp (bag))

#sort variable importancia descendente
 VI_plot <- VI [ order (VI $ Overall, decreciente = TRUE ),]

# visualice la importancia de la variable con gráfico de barras horizontal gráfico de
 barras (VI_plot $ Overall,
        names.arg = nombres de filas (VI_plot),
        horiz = VERDADERO ,
        col = ' azul acero ',
        xlab = ' Importancia variable ')

Gráfico de importancia variable en R

Podemos ver que Solar.R es la variable predictora de mayor importancia en el modelo, mientras que Month es la menos importante.

Paso 4: use el modelo para hacer predicciones

Por último, podemos utilizar el modelo en bolsa ajustado para hacer predicciones sobre nuevas observaciones.

#definir nueva observación
 new <- data.frame (Solar.R = 150, Wind = 8, Temp = 70, Month = 5, Day = 5)

#utilice un modelo empaquetado ajustado para predecir el valor de ozono de la nueva predicción de observación
 (bolsa, nuevos datos = nuevos)

24.4866666666667

Con base en los valores de las variables predictoras, el modelo en bolsa ajustado predice que el valor de ozono será 24,487 en este día en particular.

El código R completo utilizado en este ejemplo se puede encontrar aquí .

  • https://r-project.org
  • https://www.python.org/
  • https://www.stata.com/

Deja un comentario

En estadística, la varianza combinada se refiere al promedio de dos o más variaciones de grupo. Usamos la palabra "agrupados"…
statologos comunidad-2

Compartimos información EXCLUSIVA y GRATUITA solo para suscriptores (cursos privados, programas, consejos y mucho más)

You have Successfully Subscribed!