La Aleatoriedad del Bosque
Random Forest construye una gran cantidad de Árboles de Decisión, típicamente alrededor de 100 o incluso más. Crear tantos árboles diferentes no es sencillo solo ajustando configuraciones, por lo que se introduce la aleatoriedad para ayudar. Afortunadamente, los Árboles de Decisión son muy sensibles a pequeños cambios en los datos y en las configuraciones, lo que naturalmente conduce a una amplia variedad de árboles en el bosque.
Existen dos fuentes de aleatoriedad en un Random Forest:
- Muestreo de los datos para cada árbol;
- Muestreo de las características en cada nodo de decisión de cada árbol.
Muestreo de los Datos
Para crear un conjunto de entrenamiento diferente para cada Árbol de Decisión en un bosque, se utiliza el método bootstrap (también conocido como bagging). La idea es muestrear, con reemplazo, un conjunto de datos del mismo tamaño para cada árbol.
Por defecto, el tamaño del conjunto de datos de cada árbol coincide con el tamaño del conjunto de datos original. El muestreo con reemplazo puede entenderse como seleccionar aleatoriamente un punto de datos del conjunto de entrenamiento, similar a sacar una carta de una baraja. Sin embargo, a diferencia de sacar cartas normalmente, cada punto de datos seleccionado no se elimina, por lo que el mismo punto de datos puede ser elegido varias veces.
Cada árbol se entrena con un subconjunto diferente de los datos, lo que ya contribuye a que los árboles sean diversos. Para añadir aún más aleatoriedad y acelerar el entrenamiento, también se puede limitar el número de características que cada árbol considera al realizar divisiones.
Muestreo de las características
En un Árbol de Decisión estándar, cada nodo examina todas las características disponibles para encontrar la mejor división, generalmente calculando métricas como la impureza de Gini. Este proceso es computacionalmente costoso.
En un Bosque Aleatorio, solo se considera un subconjunto aleatorio de características en cada nodo. Esto acelera el entrenamiento y añade aleatoriedad, lo que ayuda a que los árboles sean más diversos. Un enfoque común es utilizar la raíz cuadrada del número total de características. Por ejemplo, si hay 9 características, se podrían elegir aleatoriamente 3 en cada nodo; si hay 10,000 características, se seleccionarían alrededor de 100.
Las características se muestrean sin reemplazo, por lo que la misma característica no aparecerá más de una vez en un solo nodo. El número de características a considerar puede ajustarse según el caso de uso.
Se puede controlar cuántas características se consideran en cada nodo de decisión utilizando el parámetro max_features en la implementación de scikit-learn. Estas son algunas de las opciones más populares:
max_features='sqrt': utiliza la raíz cuadrada del número total de características. Es un valor predeterminado común que equilibra precisión y eficiencia;max_features='log2': utiliza el logaritmo en base 2 del número total de características, proporcionando aún más aleatoriedad;max_features=0.1: utiliza el 10% de las características, donde el valor se trata como una proporción.
También se puede establecer max_features en cualquier proporción entre 0 y 1 (por ejemplo, max_features=0.1 utiliza el 10% de las características).
En resumen, un Bosque Aleatorio está diseñado de manera que cada árbol se entrena con una muestra diferente de los datos, y cada nodo de decisión dentro de esos árboles considera un subconjunto aleatorio diferente de características. Esta aleatoriedad incorporada conduce a una colección diversa de árboles, lo que finalmente mejora el rendimiento general del modelo.
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Can you explain why randomness is important in Random Forests?
How does sampling with replacement differ from sampling without replacement?
What is the effect of changing the max_features parameter?
Awesome!
Completion rate improved to 4.17
La Aleatoriedad del Bosque
Desliza para mostrar el menú
Random Forest construye una gran cantidad de Árboles de Decisión, típicamente alrededor de 100 o incluso más. Crear tantos árboles diferentes no es sencillo solo ajustando configuraciones, por lo que se introduce la aleatoriedad para ayudar. Afortunadamente, los Árboles de Decisión son muy sensibles a pequeños cambios en los datos y en las configuraciones, lo que naturalmente conduce a una amplia variedad de árboles en el bosque.
Existen dos fuentes de aleatoriedad en un Random Forest:
- Muestreo de los datos para cada árbol;
- Muestreo de las características en cada nodo de decisión de cada árbol.
Muestreo de los Datos
Para crear un conjunto de entrenamiento diferente para cada Árbol de Decisión en un bosque, se utiliza el método bootstrap (también conocido como bagging). La idea es muestrear, con reemplazo, un conjunto de datos del mismo tamaño para cada árbol.
Por defecto, el tamaño del conjunto de datos de cada árbol coincide con el tamaño del conjunto de datos original. El muestreo con reemplazo puede entenderse como seleccionar aleatoriamente un punto de datos del conjunto de entrenamiento, similar a sacar una carta de una baraja. Sin embargo, a diferencia de sacar cartas normalmente, cada punto de datos seleccionado no se elimina, por lo que el mismo punto de datos puede ser elegido varias veces.
Cada árbol se entrena con un subconjunto diferente de los datos, lo que ya contribuye a que los árboles sean diversos. Para añadir aún más aleatoriedad y acelerar el entrenamiento, también se puede limitar el número de características que cada árbol considera al realizar divisiones.
Muestreo de las características
En un Árbol de Decisión estándar, cada nodo examina todas las características disponibles para encontrar la mejor división, generalmente calculando métricas como la impureza de Gini. Este proceso es computacionalmente costoso.
En un Bosque Aleatorio, solo se considera un subconjunto aleatorio de características en cada nodo. Esto acelera el entrenamiento y añade aleatoriedad, lo que ayuda a que los árboles sean más diversos. Un enfoque común es utilizar la raíz cuadrada del número total de características. Por ejemplo, si hay 9 características, se podrían elegir aleatoriamente 3 en cada nodo; si hay 10,000 características, se seleccionarían alrededor de 100.
Las características se muestrean sin reemplazo, por lo que la misma característica no aparecerá más de una vez en un solo nodo. El número de características a considerar puede ajustarse según el caso de uso.
Se puede controlar cuántas características se consideran en cada nodo de decisión utilizando el parámetro max_features en la implementación de scikit-learn. Estas son algunas de las opciones más populares:
max_features='sqrt': utiliza la raíz cuadrada del número total de características. Es un valor predeterminado común que equilibra precisión y eficiencia;max_features='log2': utiliza el logaritmo en base 2 del número total de características, proporcionando aún más aleatoriedad;max_features=0.1: utiliza el 10% de las características, donde el valor se trata como una proporción.
También se puede establecer max_features en cualquier proporción entre 0 y 1 (por ejemplo, max_features=0.1 utiliza el 10% de las características).
En resumen, un Bosque Aleatorio está diseñado de manera que cada árbol se entrena con una muestra diferente de los datos, y cada nodo de decisión dentro de esos árboles considera un subconjunto aleatorio diferente de características. Esta aleatoriedad incorporada conduce a una colección diversa de árboles, lo que finalmente mejora el rendimiento general del modelo.
¡Gracias por tus comentarios!