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

De la Regresión Logística al Scorecard: La Transformación Matemática

En un entrada previa explicamos qué son el WOE y el IV y por qué…

23 horas ago

Analytics Lane lanza la versión 1.1 del laboratorio con nuevas suites de CLV y Scoring

Seguimos evolucionando el laboratorio de Analytics Lane y hoy lanzamos la versión 1.1, disponible en:…

2 días ago

Interés compuesto: la fuerza que multiplica tu dinero (y los errores que la anulan)

“El interés compuesto es la octava maravilla del mundo. El que lo entiende lo gana…

6 días ago

Cómo comparar datos con barras en Matplotlib: agrupadas, apiladas y porcentuales

Tienes los datos de ventas de tres productos en dos años distintos y quieres saber…

1 semana ago

Costes hundidos en ciencia de datos: cuándo mantener un modelo y cuándo migrar

Imagina la situación. Tu equipo lleva tres años con un modelo en producción. No es…

2 semanas ago

WOE e IV: La Base Matemática del Credit Scoring

Cuando un banco evalúa una solicitud de crédito necesita responder a una pregunta aparentemente simple:…

2 semanas ago

This website uses cookies.