El bosque aleatorio (Random Forest) es un algoritmo estadístico de aprendizaje supervisado que se emplea principalmente para tareas de clasificación y regresión, no para agrupamiento (clustering). Trabaja sobre conjuntos de datos y aprovecha la construcción de múltiples árboles de decisión combinados para mejorar la precisión y la robustez frente al sobreajuste, especialmente cuando hay muchas variables o relaciones no lineales entre ellas.
Cómo funciona
- Muestreo bootstrap (bagging): se generan muchos subconjuntos aleatorios del conjunto de entrenamiento mediante muestreo con reemplazo; cada árbol se entrena en uno de esos subconjuntos.
- Selección aleatoria de características: en cada división interna del árbol, en lugar de considerar todas las variables, se elige aleatoriamente un subconjunto de ellas (parámetro max_features), lo que introduce diversidad entre los árboles.
- Construcción de árboles: cada árbol de decisión se desarrolla hasta un criterio de parada (profundidad máxima, número mínimo de muestras por hoja, etc.).
- Agregación de predicciones: para clasificación se usa voto por mayoría entre los árboles; para regresión se promedia la predicción de todos los árboles.
- Error fuera de la bolsa (OOB): como cada árbol no ve aproximadamente un tercio de los datos (los no muestreados), esos casos se usan para una estimación interna del error sin necesidad de validación cruzada.
Ventajas
- Reduce el sobreajuste típico de árboles individuales al promediar muchos árboles.
- Funciona bien con datos de alta dimensionalidad y relaciones no lineales.
- Maneja variables categóricas y numéricas (dependiendo de la implementación) y tolera valores faltantes en muchos casos.
- Proporciona medidas de importancia de variables (por ejemplo, disminución de impureza o importancia por permutación), útiles para selección de características.
- La estimación OOB ofrece una evaluación rápida del rendimiento sin dividir explícitamente los datos.
Limitaciones
- Menor interpretabilidad que un solo árbol de decisión: el modelo es una "caja negra" más difícil de explicar.
- Modelos grandes con muchos árboles pueden requerir más memoria y tiempo de cómputo, tanto para entrenar como para predecir.
- Puede sesgarse hacia variables con más niveles al calcular importancia basada en impureza; la importancia por permutación corrige parcialmente esto.
Parámetros importantes
- n_estimators: número de árboles en el bosque. Más árboles suelen mejorar la estabilidad pero aumentan el costo computacional.
- max_features: número de características a considerar en cada división (sqrt, log2, o un número fijo).
- max_depth: profundidad máxima de cada árbol (limitarla puede evitar árboles muy grandes).
- min_samples_split / min_samples_leaf: controlan el tamaño mínimo de las divisiones/hojas.
- bootstrap: si se usa muestreo con reemplazo (bootstrap) para generar los subconjuntos.
Cuándo usar Random Forest
- Problemas de clasificación o regresión con muchas variables y posibles interacciones no lineales.
- Cuando se necesita una solución robusta con buena precisión sin un extenso ajuste de hiperparámetros.
- Para obtener una primera evaluación de la importancia de las variables antes de aplicar modelos más interpretables o más complejos.
Buenas prácticas
- Escalar características no suele ser necesario para Random Forest.
- Ajustar n_estimators hasta que la curva de validación se estabilice y controlar la complejidad con max_depth y min_samples_leaf.
- Usar validación cruzada o la estimación OOB para evaluar rendimiento y evitar sobreajuste por selección de hiperparámetros.
- Si se necesita interpretabilidad, combinar Random Forest con técnicas de explicación (SHAP, LIME) o reducir el modelo usando la importancia de variables.
En resumen, el bosque aleatorio (Random Forest) es una técnica poderosa y versátil para clasificación y regresión que aprovecha el promedio de muchos árboles diversos para obtener predicciones más estables y precisas, especialmente útil cuando hay muchas variables y relaciones complejas en los datos.