De descubrimiento de medicamento a clasificación de especies, puntuacion de credito a la seguridad cibernética Y más, el bosque aleatorio es un algoritmo popular y poderoso para modelar nuestro complejo mundo. Su versatilidad y capacidad predictiva parecerían requerir una complejidad de vanguardia, pero si profundizamos en lo que realmente es un bosque aleatorio, vemos un conjunto sorprendentemente simple de pasos repetitivos.
Creo que la mejor manera de aprender algo es jugar con ello. Entonces, para tener una idea de cómo funcionan los bosques aleatorios, construyamos uno a mano en Python, comenzando con un árbol de decisión y expandiéndolo al bosque completo. Veremos de primera mano cuán flexible e interpretable es este algoritmo tanto para clasificación como para regresión. Y si bien este proyecto puede parecer complicado, en realidad solo hay algunos conceptos básicos que necesitaremos aprender: 1) cómo particionar datos de forma iterativa y 2) cómo cuantificar qué tan bien se particionan los datos.
Inferencia del árbol de decisión
Un árbol de decisión es un algoritmo de aprendizaje supervisado que identifica un conjunto ramificado de reglas binarias que asignan características a etiquetas en un conjunto de datos. A diferencia de algoritmos como la regresión logística donde el resultado es una ecuación, el algoritmo del árbol de decisión es no paramétrico, lo que significa que no hace suposiciones sólidas sobre la relación entre características y etiquetas. Esto significa que los árboles de decisión pueden crecer libremente de la manera que mejor divida sus datos de entrenamiento, por lo que la estructura resultante variará entre conjuntos de datos.
Un beneficio importante de los árboles de decisión es su explicabilidad: cada paso que da el árbol para decidir cómo predecir una categoría (para clasificación) o un valor continuo (para regresión) se puede ver en los nodos del árbol. Un modelo que predice si un comprador comprará un producto que vio en línea, por ejemplo, podría verse así.
Comenzando con el raízcada nodo del árbol formula una pregunta binaria (p. ej., “¿La sesión duró más de 5 minutos?”) y pasa el vector de características a uno de los dos nodos secundarios dependiendo de…