Otros temas

En esta unidad, se analizan los siguientes temas:

  • interpreta bosques aleatorios
  • entrenar bosques aleatorios
  • pros y contras de los bosques aleatorios

Interpretación de bosques aleatorios

Los bosques aleatorios son más complejos de interpretar que los árboles de decisión. Los bosques aleatorios contienen árboles de decisión entrenados con ruido aleatorio. Por lo tanto, es más difícil emitir juicios sobre la estructura del árbol de decisión. Sin embargo, podemos interpretar modelos de bosques aleatorios de dos maneras.

Un enfoque para interpretar un bosque aleatorio es simplemente entrenar y, luego, interpretar un árbol de decisión con el algoritmo CART. Debido a que el bosque aleatorio y el CART se entrenan con el mismo algoritmo principal, comparten la misma vista global del conjunto de datos. Esta opción funciona bien para conjuntos de datos simples y para comprender la interpretación general del modelo.

Las importancias variables son otro buen enfoque de interpretabilidad. Por ejemplo, en la siguiente tabla, se clasifica la importancia variable de los diferentes atributos de un modelo de bosque aleatorio entrenado en el conjunto de datos del censo (también conocido como adulto).

Tabla 8. Importancia variable de 14 atributos diferentes

Atributo Puntuación de la suma Disminución media en la precisión Disminución media del AUC Profundidad mín. media Cantidad de nodos Disminución media en el PR-AUC Num. como raíz
relationship

4203592.6

0.0045

0,0172

4,970

57040

0.0093

1095

capital_gain

3363,045.1

0,0199

0,0194

2,852

56468

0,0655

457

marital_status

3128996.3

0,0018

0,0230

6,633

52391

0.0107

750

edad

2520658.8

0,0065

0,0074

4,969

356784

0,0033

200

education

2015905.4

0,0018

-0,0080

5,266

115751

-0,0129

205

occupation

1939409.3

0,0063

-0,0040

5,017

221935

-0,0060

62

education_num

1673648.4

0,0023

-0,0066

6,009

58303

-0,0080

197

fnlwgt

1564189.0

-0,0002

-0,0038

9,969

431987

-0,0049

0

hours_per_week

1333976.3

0,0030

0,0007

6,393

206526

-0,0031

20

capital_loss

866863,8

0,0060

0,0020

8,076

58531

0.0118

1

workclass

644,208.4

0.0025

-0,0019

9,898

132196

-0,0023

0

native_country

538,841.2

0.0001

-0,0016

9,434

67211

-0,0058

0

sexo

226,049.3

0.0002

0.0002

10,911

37754

-0,0011

13

raza

168,180.9

-0,0006

-0,0004

11,571

42262

-0,0031

0

Como puedes ver, las diferentes definiciones de importancias variables tienen diferentes escalas y pueden generar diferencias en la clasificación de los atributos.

Las importancias variables que provienen de la estructura del modelo (por ejemplo, la suma de la puntuación, la profundidad media, la cantidad mínima de nodos y la cantidad como raíz en la tabla anterior) se calculan de manera similar para los árboles de decisión (consulta la sección &Cart | Importancia de la variable) y los bosques aleatorios.

La importancia de la variable de permutación (por ejemplo, la disminución promedio en {accuracy, auc, pr-auc} en la tabla anterior) son medidas independientes del modelo que se pueden calcular en cualquier modelo de aprendizaje automático con un conjunto de datos de validación. Sin embargo, con el bosque aleatorio, en lugar de usar un conjunto de datos de validación, puedes calcular la importancia de la variable de permutación con la evaluación fuera de bolso.

SHAP (Explicaciones aditivas de Shapley) es un método independiente del modelo para explicar predicciones individuales o interpretación a nivel de modelo. (Consulta Interpretable Machine Learning de Molnar para obtener una introducción a la interpretación independiente del modelo). SHAP suele ser costoso de procesar, pero se puede acelerar significativamente para los bosques de decisión, por lo que es una buena manera de interpretar los bosques de decisión.

Ejemplo de uso

En la lección anterior, entrenamos un árbol de decisión de CART en un conjunto de datos pequeño llamando a tfdf.keras.CartModel. Para entrenar un modelo de bosque aleatorio, solo reemplaza tfdf.keras.CartModel por tfdf.keras.RandomForestModel:

model = tfdf.keras.RandomForestModel()
model.fit(tf_train_dataset)

Pros y contras

En esta sección, se incluye un breve resumen de las ventajas y desventajas de los bosques aleatorios.

Ventajas:

  • Al igual que los árboles de decisión, los bosques aleatorios admiten atributos numéricos y categóricos de forma nativa y, a menudo, no necesitan un procesamiento previo de los atributos.
  • Debido a que los árboles de decisión son independientes, los bosques aleatorios se pueden entrenar en paralelo. En consecuencia, puedes entrenar bosques aleatorios con rapidez.
  • Los bosques aleatorios tienen parámetros predeterminados que suelen generar excelentes resultados. A menudo, ajustar esos parámetros tiene poco efecto en el modelo.

Desventajas:

  • Debido a que los árboles de decisión no se podan, pueden ser grandes. Los modelos con más de 1 millón de nodos son comunes. El tamaño (y, por lo tanto, la velocidad de inferencia) del bosque aleatorio a veces puede ser un problema.
  • Los bosques aleatorios no pueden aprender ni reutilizar representaciones internas. Cada árbol de decisión (y cada rama de cada árbol de decisión) debe volver a aprender el patrón del conjunto de datos. En algunos conjuntos de datos, en particular los conjuntos de datos no tabulares (p.ej., imágenes, texto), los bosques aleatorios producen peores resultados que otros métodos.