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.