En esta unidad, se examinan los siguientes temas:
- interpretación de bosques aleatorios
- Entrenamiento de bosques aleatorios
- ventajas y desventajas 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 tomar decisiones sobre la estructura del árbol de decisión. Sin embargo, podemos interpretar los modelos de bosque aleatorio de varias maneras.
Un enfoque para interpretar un bosque aleatorio es simplemente entrenar e interpretar un árbol de decisión con el algoritmo CART. Debido a que tanto el bosque aleatorio como 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 de las variables son otro buen enfoque de interpretabilidad. Por ejemplo, en la siguiente tabla, se clasifica la importancia de las variables de diferentes atributos para un modelo de bosque aleatorio entrenado en el conjunto de datos del censo (también conocido como Adult).
Tabla 8. Importancia de las variables de 14 características diferentes.
Función | Suma de la puntuación | Disminución promedio de la precisión | Disminución promedio del AUC | Profundidad mínima promedio | Cantidad de nodos | Disminución promedio en la AUC de PR | Num como raíz |
---|---|---|---|---|---|---|---|
relación | 4203592.6 |
0.0045 |
0.0172 |
4.970 |
57040 |
0.0093 |
1095 |
capital_gain | 3363045.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 | 644208.4 |
0.0025 |
-0.0019 |
9.898 |
132196 |
-0.0023 |
0 |
native_country | 538841.2 |
0.0001 |
-0.0016 |
9.434 |
67211 |
-0.0058 |
0 |
sexo | 226049.3 |
0.0002 |
0.0002 |
10.911 |
37754 |
-0.0011 |
13 |
race | 168180.9 |
-0.0006 |
-0.0004 |
11.571 |
42262 |
-0.0031 |
0 |
Como ves, las diferentes definiciones de importancia de las variables tienen escalas diferentes y pueden generar diferencias en la clasificación de las características.
Las importancias de las variables que provienen de la estructura del modelo (por ejemplo, la puntuación de suma, la profundidad mínima promedio, la cantidad 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 | Variable importance") y los bosques aleatorios.
La importancia de las variables 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 las variables de permutación con la evaluación fuera del bag.
SHAP (Explicaciones aditivas de Shapley) es un método agnóstico al modelo para explicar predicciones individuales o la interpretación de modelos. (consulta Interpretable Machine Learning de Molnar para obtener una introducción a la interpretación independiente del modelo). Por lo general, el SHAP es costoso de calcular, pero se puede acelerar significativamente para los bosques de decisión, por lo que es una buena forma de interpretarlos.
Ejemplo de uso
En la lección anterior, entrenamos un árbol de decisión CART en un conjunto de datos pequeño llamando a tfdf.keras.CartModel
. Para entrenar un modelo de bosque aleatorio, simplemente 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 resumen rápido 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. Por lo tanto, puedes entrenar bosques aleatorios con rapidez.
- Los bosques aleatorios tienen parámetros predeterminados que suelen brindar excelentes resultados. Ajustar esos parámetros suele tener 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 no tabulares (p.ej., imágenes o texto), esto hace que los bosques aleatorios tengan peores resultados que otros métodos.