El algoritmo Random Forest (o Bosque Aleatorio en español) fue desarrollado a finales de la década de 1990 por los estadísticos Leo Breiman y Adele Cutler, y publicado en un artículo titulado "Random Forests" publicado en la revista Machine Learning en el año 2001. Desde entonces, Random Forest se ha convertido en uno de los algoritmos de aprendizaje automático más populares y ampliamente utilizados debido a su capacidad para manejar conjuntos de datos grandes y complejos y su buen rendimiento en una amplia variedad de aplicaciones.
A partir de un conjunto de entrenamiento, este algoritmo genera un cierto número de árboles de decisión, siendo entrenado cada uno de ellos con un subconjunto aleatorio de muestras extraídas con reemplazo. Además, durante la división de cada nodo, en lugar de considerar todas las características predictivas para encontrar el mejor criterio de división, solo considera un subconjunto de ellas. En la publicación original, cada árbol creado votaba por la clase a asignar, aunque en la implementación de Scikit-Learn se calcula el valor medio de las predicciones probabilísticas.
Como consecuencia de la aleatoriedad introducida, el sesgo o error del modelo aumenta ligeramente pero, gracias a la combinación de los modelos, decrece la varianza compensando el efecto negativo mencionado, dando como resultado un mejor resultado. Otra desventaja de este algoritmo es que el resultado es más difícil de interpretar que el devuelto por un único árbol de decisión.
Scikit-Learn implementa este algoritmo para clasificación en la clase sklearn.ensemble.RandomForestClassifier.