Implementación de todos los algoritmos de árboles de decisión con un solo marco: ChefBoost

Estás leyendo la publicación: Implementación de todos los algoritmos de árboles de decisión con un solo marco: ChefBoost

Existen diferentes algoritmos de árboles de decisión que se utilizan en diferentes casos de uso y un par de ellos se pueden aplicar al mismo problema. Todo lo que tenemos que hacer es cambiar el algoritmo, ajustarlos y comparar sus rendimientos por separado. En este artículo, cubriremos un enfoque a través del cual podemos ejecutar rápidamente todos los algoritmos del árbol de decisión utilizando el mismo marco y comparar el rendimiento fácilmente. Vamos a usar ChefBoost, que es un marco de árbol de decisión liviano y podemos implementar algoritmos de árbol de decisión usándolo en solo unas pocas líneas de código. Los puntos principales que se discutirán en este artículo se enumeran a continuación.

Tabla de contenido

  1. Resumen sobre los árboles de decisión
  2. Diferentes algoritmos de árboles de decisión
  3. Acerca del marco ChefBoost
  4. Implementación de todos los algoritmos de árboles de decisión con ChefBoost

Comencemos por comprender brevemente los árboles de decisión.

Resumen sobre los árboles de decisión

Se pueden usar varios algoritmos en el análisis de regresión y el análisis de clasificación y el árbol de decisión es uno de esos algoritmos. Como su nombre indica, estos algoritmos se pueden comparar con un árbol para tomar cualquier decisión. Principalmente encontramos el uso de dicho árbol cuando los datos con los que estamos tratando tienen propiedades de relación no lineal. La siguiente imagen es una representación del funcionamiento de cualquier árbol de decisión.

En la imagen de arriba, podemos ver que, en base a las dos condiciones, un estudiante necesita decidir si debe ir a la escuela o no. Esta decisión se puede tomar en base a ciertos criterios. Como si él piensa que no está sufriendo de covid entonces hay una relación que genera en el siguiente paso que por ir a la escuela puede estar sufriendo de covid y nuevamente hay una condición que debe confirmarse antes de ir a la escuela. Entonces, en el ejemplo, podemos decir que el bloque son los nodos, y dividir estos nodos nos hace tomar una decisión. Este es un ejemplo muy simple y podemos decir fácilmente en qué condiciones qué decisión debe tomar el estudiante.

Una cosa que afecta en gran medida la decisión tomada por el algoritmo es la gran cantidad de datos. En tales condiciones, hay varias cosas que debemos saber sobre el algoritmo del árbol de decisión, como la ganancia de información, la entropía, el número de divisiones, etc. uno de nuestros artículos cubre la mayor parte de esta información que podemos obtener sobre el árbol de decisión. También podemos llamar a este algoritmo la raíz de los algoritmos del bosque. Los algoritmos de árboles de decisión no son solo un algoritmo, sino que tienen varias versiones.

🔥 Recomendado:  5 estrategias de marketing digital para contadores

¿Está buscando un repositorio completo de bibliotecas de Python utilizadas en ciencia de datos, echa un vistazo aquí.

Diferentes algoritmos de árboles de decisión

Todos los algoritmos del árbol de decisión se basan en la extracción de características de los datos que pueden brindar la mayor ganancia de información. Pero como cada versión actualizada tiene mejores cualidades que la anterior, los árboles de decisión también mejoran con actualizaciones simples. Hay 5 versiones populares de algoritmos de árboles de decisión:

  • ID3: Podemos comparar este algoritmo del árbol de decisión con la versión estándar y es el acrónimo de dicotomización iterativa donde la palabra ‘dicotomizar’ puede explicarse como dividir una condición en dos decisiones opuestas. Entonces, todo el fenómeno puede considerarse como una división iterativa de las condiciones en dos decisiones principales y otras para construir el árbol. Finalmente, después de que la construcción del algoritmo del árbol calcula la información como la entropía y la ganancia de información, la decisión más dominante es el resultado final.
  • C4.5: Una cosa que hemos discutido en el algoritmo del árbol de decisión ID3 es que principalmente encuentra la decisión dominante para varias condiciones, pero cuando se trata de datos continuos, no hay adición en este algoritmo. Para manejar datos continuos, el C4.5 entra en escena y, al usar esta versión, también podemos manejar datos continuos y valores faltantes.
  • CARRO: Como practicante de la ciencia de datos, debemos haber escuchado el índice de Gini en árboles de decisión y bosques aleatorios. Por primera vez, este índice se presenta con esta versión CART de los algoritmos del árbol de decisión. Utilizando este índice, este algoritmo es capaz de calcular la ganancia de sobreinformación. Entendemos el índice de Gini como el proceso de restar uno a la suma de las probabilidades al cuadrado de cada clase. Esta versión también es capaz de tratar ambos tipos de problemas (clasificación y regresión).
  • CHAID: Este algoritmo puede considerarse uno de los algoritmos más antiguos del árbol de decisión y es capaz de encontrar las características que tienen mayor significación estadística. La palabra CHAID significa detección de interacción automática de chi-cuadrado y podemos entenderla fácilmente porque chi-cuadrado se usa para determinar la importancia estadística de las características. Esta versión es conocida principalmente por resolver el problema de clasificación.
  • Árboles de regresión: Este algoritmo de árboles de decisión está diseñado principalmente para realizar regresiones. En lo anterior, hemos visto que las otras versiones de árboles son buenas con el problema de clasificación y nadie ha diseñado especialmente para realizar la regresión. El enfoque de este árbol es convertir una característica continua en una característica categórica. La importancia de las características continuas se puede extraer donde la característica muestra la mayor ganancia de información.
🔥 Recomendado:  Los 18 mejores grupos de Facebook de marketing de Instagram

Aquí hemos discutido las diferentes versiones de los árboles de decisión y una cosa que se puede apreciar más es que realizan técnicas avanzadas como el aumento de gradiente, el bosque aleatorio y AdaBoost para obtener mejores resultados que se actualizan en los árboles de decisión. Tomemos una idea de cómo podemos implementar árboles de decisión.

Acerca del marco ChefBoost

Antes de realizar este artículo, realizamos varias investigaciones y descubrimos que ChefBoost es un paquete de Python que proporciona funciones para implementar todos los tipos regulares de árboles de decisión y técnicas avanzadas. Una cosa que llama la atención sobre el paquete es que podemos construir cualquier versión del árbol de decisión anterior usando solo unas pocas líneas de códigos.

Este paquete admite los datos en forma de marco de datos de pandas, lo que facilita el proceso para las personas que son buenas para usar pandas para el preprocesamiento de datos. Las funciones están diseñadas de tal manera que con solo presionar el marco de datos de pandas y el tipo de árbol de decisión podemos construir un modelo de árbol de decisión. Las convenciones de nomenclatura para los árboles también son simples, como mencionamos en la sección anterior. Por ejemplo, para implementar ID3 solo necesitamos pasar ‘ID3’ en la función de configuración.

La implementación que vamos a realizar en este artículo nos permitirá conocer el uso de este paquete. Podemos instalar este paquete usando las siguientes líneas de códigos.

!pip instalar chefboost

Implementación de todos los algoritmos de árboles de decisión con ChefBoost

Hay una variedad de formas de implementar un árbol de decisión. Así que veremos cómo podemos implementar un árbol de decisión usando este paquete.

🔥 Recomendado:  Un tutorial sobre la creación de modelos de aprendizaje profundo de extremo a extremo en PyTorch

Echemos un vistazo a cómo podemos construir árboles de decisión. Comenzaremos importando datos de golf que se pueden encontrar aquí.

importar pandas como datos pd = pd.read_csv(‘https://raw.githubusercontent.com/serengil/chefboost/master/tests/dataset/golf.txt’) data.head()

Producción:

Aquí podemos ver que hay 4 condiciones mediante las cuales nosotros o el algoritmo podemos decir si jugar al golf o no. Construyamos el modelo.

config = {‘algoritmo’: ‘C4.5’} modelo = chef.fit(datos, config = config, target_label=”Decisión”)

Producción:

Aquí podemos ver los detalles que obtuvimos al modelar la versión C4.5 del árbol de decisión. Hagamos una predicción.

predicción = chef.predict(modelo, param = data.iloc[0]) predicción

Producción:

Aquí, en los códigos del modelo, podemos ver que hemos configurado la versión C4.5 para modelar la versión C4.5 del árbol de decisión. Simplemente podemos cambiarlo de acuerdo con nuestros requisitos. Probemos una versión más para verificar esto.

config = {‘algoritmo’: ‘ID3’} modelo = chef.fit(datos, config = config, target_label=”Decisión”)

Producción:

Aquí en la salida, podemos ver que la versión ID3 está construida esta vez. Aunque he implementado todos los algoritmos de árboles de decisión mencionados anteriormente en este enlace para obtener más ideas que podemos analizar.

Ultimas palabras

En este artículo, hemos discutido el árbol de decisión, que es un algoritmo de aprendizaje automático supervisado que se puede usar para problemas de regresión y clasificación y tiene varias versiones de sí mismo. Junto con esto, hemos analizado la idea de implementar todas las versiones de los árboles de decisión utilizando un único marco denominado ChefBoost.

Referencias