Ciencia de datos

Representar los criterios de selección en árboles de decisión

La representación de árboles de decisión es un tema del que ya se ha publicado con antelación en el blog. En su momento de ha visto los pasos necesarios para generar representaciones gráficas y de texto con las librerías PyDotPlus y Scikit-Learn. Aunque también existen otras librerías como dtreeviz, la que veremos hoy. Una librería con la que es posible representar los criterios de selección en árboles de decisión de una forma clara, por lo que puede ser una excelente opción para la representación de estos modelos.

Instalación de dtreeviz

La instalación de dtreeviz es un poco más complicada que otros paquetes de Python, porque depende de Graphviz, un conjunto de herramientas para la creación de diagramas que debe ser instalado por separado en el ordenador. Así que en primer lugar es necesario comprobar si tenemos instalado o no este conjunto de herramientas en nuestro ordenador, algo que se puede hacer simplemente escribiendo dot -v en la terminal. En el caso de que esté instalado y en el path nos aparecerá por pantalla la versión instalada, en caso contrario no indicará que el comando no existe.

Si Graphviz no se encuentra instalado, deberemos ir a la zona de descargas del proyecto y seguir las instrucciones para nuestro sistema operativo. Una vez instalado Graphviz, podremos instalar dtreeviz desde PyPI usando para ello el comando

pip install dtreeviz

Por lo que ya podremos usar este paquete para la representación de árboles de decisión.

Representar un árbol de decisión con dtreeviz

Para ver dtreeviz en funcionamiento se puede usar el mismo ejemplo empleado para explicar las capacidades gráficas de Scikit-Learn respecto a los árboles de decisión. Un árbol basado en los datos de Iris que se puede crear y representar con el siguiente código.

Con lo que Scikit-Learn generará la siguiente gráfica.

Representación gráfica del árbol de decisión

Ahora, una vez creado el árbol, se pueden ver los pasos para crear la representación del árbol con dtreeviz. Para lo que primero hay que importar la función dtreeviz. Esta función requiere el árbol, los datos de entrenamiento y, opcionalmente, se le puede pasar también el nombre de las características y las clases para incluirlas en la gráfica. Creando la función un objeto que se puede llamar para visualizar, tal como se muestra a continuación.

En esta gráfica se puede ver un histograma de las clases para la característica empleada por el árbol de decisión para clasificar. Mostrando la posición del punto de corte en la gráfica. Además, en los nodos finales del árbol se ve una gráfica de tarta con la proporción de las clases. Una forma de representar los árboles que puede ser bastante útil a la hora de explicar cómo se toman las decisiones.

Representación gráfica del árbol de decisión con dtreeviz.

La gráfica que se obtiene es un SVG, el cual se puede exportar a un archivo mediante el método save(). Esto genera un archivo CSV que posteriormente se puede convertir en otro formato. Así, para guardar la imagen en un archivo se debería escribir algo como lo siguiente.

viz.save("dtreeviz-iris.svg")

Conclusiones

En esta ocasión se ha visto una herramienta para representar los criterios de selección en árboles de decisión de una forma gráfica. Facilitando así explicar el motivo por el qué los modelos seleccionan una clase u otra en cada momento. Una forma de representar estos modelos que se agrega a las ya vista con PyDotPlus y Scikit-Learn.

Imagen de jplenio en Pixabay

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez

Recent Posts

¿Media, mediana o moda en variables ordinales? Guía práctica para el análisis de datos

Cuando comenzamos un análisis de datos, uno de los primeros pasos suele ser resumir las…

1 hora ago

Data Lake y Data Warehouse: diferencias, usos y cómo se complementan en la era del dato

En la era del dato, las organizaciones se enfrentan al reto de gestionar volúmenes masivos…

5 días ago

Documentar tu API de Express con TypeScript usando OpenAPI (Swagger)

En la serie Creación de una API REST con Express y TypeScript construimos una API…

1 semana ago

Curiosidad: El sesgo de supervivencia, o por qué prestar atención sólo a los que “llegaron” puede engañarte

Durante la Segunda Guerra Mundial, la Fuerza Aérea de Estados Unidos quería reforzar sus aviones…

2 semanas ago

Cómo abrir una ventana de Chrome con tamaño y posición específicos desde la línea de comandos en Windows

En muchas situaciones —ya sea para grabar un tutorial, tomar capturas de pantalla profesionales, probar…

2 semanas ago

La Paradoja del Cumpleaños, o por qué no es tan raro compartir fecha de nacimiento

Imagínate en una sala con un grupo de personas, por ejemplo, en una oficina, un…

3 semanas ago

This website uses cookies.