脕rboles de Decisi贸n Regresi贸n con Scikit Learn

Scikit Learn es una de las m谩s grandes librer铆as de Machine Learning con la que cuenta Python, raz贸n por la cual veremos c贸mo se puede usar esta librer铆a para implementar este algoritmo.

De igual forma en una anterior entrada te explique la teor铆a sobre los 脕rboles de Decisi贸n Regresi贸n, por lo que ya cuentas con una base sobre este algoritmo.

Entonces empecemos con la explicaci贸n, al igual que con los vectores de soporte Scikit Learn cuenta con un modulo en donde se incluye todo lo referente al algoritmo de Arboles de Decisi贸n, por lo que para implementarlo deber谩s primero definir este modulo sklearn.tree. Posteriormente deber谩s importar la clase que en este caso ser谩 DecisionTreeRegressor.

Arboles-de-Decisio虂n-Regresio虂n-Scikit-Learn-1

Realizado esto ya podemos construir un modelo utilizando este algoritmo, igual que en los anteriores casos deber谩s crear los par谩metros 鈥渪鈥 y 鈥測鈥 y llamar al m茅todo fit() para realizar el entrenamiento y posteriormente la instrucci贸n predict() para realizar una predicci贸n.

Arboles-de-Decisio虂n-Regresio虂n-Scikit-Learn-2

Pero enfoqu茅monos ac谩 en ver las configuraciones que ofrece el algoritmo DecisionTreeRegressor para mejorar el modelo a construir. Recuerda que toda esta informaci贸n la puedes obtener con m谩s detalle en la p谩gina web de esta instrucci贸n, ac谩 solamente voy a explicar la configuraci贸n m谩s importante y la que debes considerar al momento de configurar el modelo.

Arboles-de-Decisio虂n-Regresio虂n-Scikit-Learn-3

Comencemos con 鈥渃riterion鈥, se acuerdan cuando les explique en la teor铆a de este algoritmo que las divisiones que se le hace a la data para crear las ramas del 谩rbol no se hac铆a al azar sino que se aplicaba la suma de cuadrados residual pero que ac谩 era computacionalmente muy costosa, bueno Scikit Learn utiliza la media del error cuadrado o 鈥渕se鈥 por sus siglas en ingl茅s para implementar la separaci贸n de los datos.

Por defecto se utiliza est谩 y es la 煤nica disponible, para la versi贸n de Scikit Learn 0.18 se cuenta adicionalmente con el criterio de error absoluto promedio (MAE), pero puedes trabajar con la media del error cuadrado sin ning煤n problema.

La siguiente configuraci贸n que tenemos es 鈥渟plitter鈥, que es la estrategia utilizada para la divisi贸n en cada nodo, en esta caso se cuenta con dos opciones 鈥渂est鈥 que ser铆a la mejor divisi贸n, y 鈥渞andom鈥 que elige de manera aleatoria la separaci贸n. Por defecto se encuentra seleccionada la opci贸n 鈥渂est鈥 que por supuesto es la mejor opci贸n.

Otro parametro que puedes modificar es 鈥渕ax_depth鈥, que se refiere la profundidad m谩xima del arbol. Se acuerdan que cuando explicamos en la teor铆a te hable que para evitar el sobreajuste a los datos lo mejor es podar el 谩rbol, bueno precisamente ac谩 podr谩s seleccionar la profundidad del mismo. Si no se coloca ning煤n valor entonces 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. Si hacemos esto es muy probable que el algoritmo caiga en sobreajuste, por lo que mi recomendaci贸n ac谩 es variar el valor y ver el que mejor se adapte.

Con estos parametros puedes desarrollar un buen modelo utilizando el algoritmo de 脕rbol de Decisi贸n Regresi贸n. Este algoritmo cuenta con otros parametros que pueden ser modificados pero a medida que ganes m谩s experiencia en el desarrollo de proyectos de Machine Learning podr谩s implementarlos en tus proyectos.

Realizado todo esto solamente falta evaluar el rendimiento del algoritmo, este paso es particularmente importante para comparar qu茅 tan bien funcionan diferentes algoritmos en un conjunto de datos particular. Para este caso utilizamos la instrucci贸n 鈥渟core鈥 junto con los datos de pruebas, la misma nos devuelve la estad铆stica R al cuadrado.

En resumen, los comandos a utilizar para implementar un algoritmo de Arboles de Decisi贸n Regresi贸n ser铆an los siguientes:

Arboles-de-Decisio虂n-Regresio虂n-Scikit-Learn-4

Deja un comentario

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