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.