El algoritmo de árbol de decisión entra dentro de la categoría de aprendizaje supervisado. Utiliza la representación del árbol para resolver el problema en el que cada nodo de hoja corresponde a una etiqueta de clase y los atributos se representan en el nodo interno del árbol. Si quieres conocer más sobre este algoritmo puede acceder acá y contarás con información más detallada al respecto.
Por su parte Scikit Learn es una de las librerías de Python más importante para Machine Learning, por lo que con esta podemos implementar el algoritmo de Árboles de Decisión Clasificación.
Para implementar esta algoritmo debemos primeramente importar el modulo sklearn.tree y posteriormente especificar DecisionTreeClassifier. Realizado esto ya podemos implementar este algoritmo en el programa que estemos desarrollando.
Igual que en la mayoría de los algoritmos de Machine Learning, para realizar una predicción deberás utilizar la instrucción fit(), mientras para entrenar el modelo deberás utilizar la instrucción predict(), todo esto junto con los datos de independientes y dependientes que habrás separado previamente.
Ahora analicemos los parámetros con los que podemos configurar este algoritmo para mejorar la obtención de un modelo.
El primero será el de “criterion”, 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”
La siguiente configuración que tenemos es “splitter”, que es la estrategia utilizada para la división en cada nodo, en esta caso se cuenta con dos opciones “best” que sería la mejor división, y “random” que elige de manera aleatoria la separación. Por defecto se encuentra seleccionada la opción “best” que por supuesto es la mejor opción.
Otro parametro que puedes modificar es “max_depth”, que se refiere la profundidad máxima del árbol. 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 parámetros puedes desarrollar un buen modelo utilizando el algoritmo de Árbol de Decisión Clasificación. Este algoritmo cuenta con otros parámetros 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.
Una vez realizada la configuración del algoritmo, haber entrenado el modelo y a su realizado una predicción ahora debemos verificar la precisión del mismo, para ello utilizamos el modulo metric de la librería Scikit Learn el cual cuenta con todas las instrucciones necesarias para obtener las métricas del algoritmo y que fueron explicadas anteriormente.
En resumen, los comandos a utilizar para implementar un algoritmo de Árboles de Decisión Clasificación serían los siguientes: