Bosques Aleatorios Clasificación – Scikit Learn

Los Bosques Aleatorios es un algoritmo de aprendizaje supervisado. Como ya puedes ver en su nombre, crea un bosque y lo hace de alguna manera aleatoria. El bosque que construye, es un conjunto de árboles de decisión, la mayoría de las veces entrenados con el método de bagging. Si recuerdas la idea general del método de bagging es que una combinación de modelos de aprendizaje aumenta el resultado global. Si quieres conocer más sobre este algoritmo puedes acceder acá y contarás con información más detallada sobre este algoritmo.

Por su parte Scikit Learn es una de las librerías de Python más importante para Machine Learning, y por supuesta cuenta con un modulo para implementar el algoritmo de Bosques Aleatorios Clasificación.

Bosques Scikit 1

Este algoritmo se encuentra dentro de los métodos de ensamblado de Machine Learning, por lo que deberemos primeramente importar el modulo sklearn.ensemble y posteriormente especificar RandomForestClassifier para poder implementar este algoritmo. Si te fijas todos los algoritmos que caen dentro de la categoría de métodos de ensamblado se encuentran dentro de este modulo en Scikit Learn, por lo que cada vez que vayas a utilizar alguno de ellos deberás importar este modulo y posteriormente definir el método a utilizar.

Bosques Scikit 2

Realizado esto ya podemos implementar este algoritmo en nuestro programa. De la misma forma que lo hemos visto en los anteriores algoritmos, con esta instrucción deberás separar las variables en “x” y “y” para implementar la instrucción fit() para entrenar el modelo y predict() para realizar una predicción.

Bosques Scikit 3

Veamos ahora todos los parámetros que podemos modificar dentro del algoritmos de Bosques Aleatorios Clasificación, recuerda que si quieres obtener más información sobre este algoritmo puede dirigirte a la página de librería, allí encontrarás muchas más información.

Bosques Scikit 4

El primer parámetro a revisar es el de “n_estimators”, este se refiere al número de árboles que el algoritmo construye antes de tomar la máxima votación o tomar promedios de predicciones. En general, un mayor número de árboles aumenta el rendimiento y hace que las predicciones sean más estables, pero también ralentiza el cálculo.

Bosques Scikit 5

El siguiente parámetro es criterion, esto fue explicado en el algoritmo de Árboles de Decisión, y acá aplica la misma explicación. Acá se define la medida de selección que se utilizará para seleccionar el criterio de división que divide los datos de la mejor manera posible. Esto fue explicado anteriormente. Por defecto este parámetro viene configurado con “gini” que vendría siendo el índice de Gini, en caso en que se quiera configurar este parámetro como ganancia de información se deberá igualar este parámetro como “entropy”.

Bosques Scikit 6

Otro parámetro que viene también relacionado a los Árboles de Decisión es max_depth, que se refiere a la profundidad del árbol, si no se especifica este valor el algoritmo selecciona de manera automática los nodos de manera que los expande hasta que todas las hojas estén puras o hasta que todas las hojas contengan menos datos.

Bosques Scikit 7

Otro parámetro importante es “max_features”, este se refiere al número máximo de características que los Bosques Aleatorios considera para dividir un nodo. Scikit Learn ofrece varias opciones como utilizar todas las características, o solamente una fracción de ellas, e inclusive puedes definir utilizar la raíz cuadrada del número de características. A nivel práctica puedes probar con varios de estos valores para ver con cual obtienes un mejor resultado.

Estos son solo algunos de los parámetros que puedes configurar para mejor el rendimiento del algoritmo y de esta forma obtener mejores resultados. En caso de que quieras obtener más información te aconsejo ingresar a la página oficial del algoritmo.

En resumen, los comandos a utilizar para implementar un algoritmo de Bosques Aleatorios Regresión serían los siguientes:

Bosques Scikit 8

 

 

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *