Minería de Procesos con PM4PY

Minería de Procesos con PM4PY

Estoy segura que podrías identificarte con la Minería de Procesos (Process Mining en inglés) si piensas en cómo utilizas aplicaciones o sitios web en tu vida diaria.

Por ejemplo, imagina cuando compras productos en línea o reservas viajes: siempre generas datos que pueden ser analizados con la Minería de Procesos. Las empresas la utilizan para mejorar la experiencia del usuario, lo que significa que los cambios realizados en los procesos pueden tener un impacto directo en cómo las personas como tú o yo  interactuamos con las aplicaciones y sitios web.

Va otro ejemplo: si una empresa mejora su proceso de compra en línea utilizando la Minería de Procesos, los clientes pueden sentirse más satisfechos con la experiencia y estar más dispuestos a volver a comprar en esta tienda.

Para darte algunos ejemplos más específicos, hay muchas empresas conocidas que emplean esta técnica para mejorar sus procesos. Aquí van unos:

  1. Siemens: Utilizó Process Mining para analizar su proceso de producción de motores eléctricos y logró una mejora del 25% en el proceso de producción.
  2. Volkswagen: A través de Process Mining analizó el proceso de ensamblaje de sus vehículos y optimizó la eficiencia de la cadena de suministro.
  3. KLM Royal Dutch Airlines: Gracias a Process Mining analizó el proceso de carga y redujo los retrasos en el envío de equipaje en un 50%.

¿Qué es la Minería de Procesos?


La Minería de Procesos es una técnica que analiza los procesos de empresas a través del registro de eventos en bases de datos. Básicamente, se trata de tomar los datos que se generan en el día a día de una empresa como transacciones, clics, interacciones con clientes y proveedores, entre otros.

Estos datos se analizan para entender cómo fluyen los procesos y cuáles son los problemas (bottlenecks) que pueden afectar la eficiencia del negocio. Con la ayuda de herramientas especializadas, la Minería de Procesos permite visualizar los procesos de manera gráfica y obtener información valiosa que mejore la toma de decisiones. Esto es valioso porque podemos optimizar los procesos para lograr una mayor eficiencia y rentabilidad en la empresa.

¿Qué casos de uso tiene?

Algunas de las aplicaciones más comunes son:

  1. Mejora de procesos: se utiliza para identificar retrasos y otras ineficiencias en los procesos empresariales para optimizarlos y mejorarlos.
  2. Cumplimiento normativo: las empresas están sujetas a regulaciones y normativas que deben cumplir. La Minería de Procesos se utiliza para monitorear y auditar los procesos empresariales, así como para asegurarse de que cumplen con estas normas.
  3. Análisis de clientes: se puede utilizar para analizar el comportamiento de los clientes y mejorar la experiencia del usuario, identificando patrones de uso, preferencias y problemas que afecten la satisfacción del cliente.
  4. Análisis de ventas: se puede utilizar para analizar el rendimiento de las ventas, identificar los patrones de compra de los clientes y mejorar la rentabilidad del negocio.
  5. Análisis de riesgos: con la Minería de Procesos se identifican y evalúan los riesgos empresariales como fraudes, errores o problemas de seguridad para tomar medidas y minimizarlos.

¿Qué herramientas puedo usar?

Existen diversas herramientas para la Minería de Procesos. Algunas de las más populares son:

  1. ProM: Es una plataforma de software que permite el análisis de procesos.
  2. Disco: Si eres estudiante, puedes obtener la licencia gratis para usarlo. Disco es fácil de usar e incluye la visualización de procesos y la identificación de problemas.
  3. Celonis: Se enfoca en la mejora de procesos empresariales en tiempo real. Celonis incluye la identificación de problemas en los procesos, el análisis de eficiencia y automatización de procesos.
  4. PM4PY: Es una biblioteca de Python. Proporciona herramientas y algoritmos para descubrir, analizar y mejorar los procesos empresariales.

¿Qué datos necesito para hacer la Minería de Procesos?

Los datos que se necesitan para hacer minería de procesos se pueden resumir en cuatro elementos principales: IDs, actividades, timestamps y duraciones. Estos elementos son los que permiten analizar los procesos empresariales y obtener información útil para mejorarlos.

  1. IDs: son identificadores únicos que se asignan a cada caso o instancia de proceso. Por ejemplo, si analizamos el proceso de atención al cliente de una empresa, cada caso podría ser el registro de una solicitud de atención.
  2. Actividades: Las actividades son las acciones realizadas en el proceso. Por ejemplo, en el proceso de atención al cliente, las actividades podrían ser registro de solicitud, asignación de caso y resolución del problema.
  3. Timestamps: son los momentos en los que se realizan las actividades. Esto permite ver el orden en que se realizan las actividades y analizar el tiempo que tarda cada una. Por ejemplo, si un cliente solicita atención a las 10:00 a. m. y su problema es resuelto a las 10:30 a. m., se puede analizar el tiempo que tardó en resolverse el problema.
  4. Duraciones: Las duraciones son el tiempo que tarda en completarse cada actividad. Esto permite analizar la eficiencia del proceso y detectar posibles problemas (bottlenecks). Por ejemplo, si una actividad tarda mucho más que el resto, se puede analizar por qué sucede esto y tomar medidas para mejorarla.

Minería de Procesos usando PM4PY

PM4Py es una biblioteca de Python para realizar tareas de Minería de Procesos y puede ser utilizada para analizar archivos en formato XES como el BPI Challenge 2017.xes.gz. Este dataset se utilizó en la competencia BPI Challenge 2017 y contiene datos de eventos reales de aplicaciones para préstamos de un instituto financiero holandés.

El objetivo de la competencia era descubrir patrones de comportamiento en los datos y utilizarlos para optimizar el proceso de préstamos. El objetivo de este tutorial es enseñarte cómo usar PM4PY para visualizar el proceso y encontrar posibles patrones.

Exportamos los datos .xes a Python de la siguiente manera:

Imagen 1.0 BPI Challenge 2017 dataset.

Ahora, aplicando la teoría de los datos necesarios para hacer Minería de Procesos a este dataset, obtenemos lo siguiente:

  • IDs: case:concept:name.
  • Actividades: concept:name.
  • Timestamp: time:timestamp.

Para este tutorial, se creó una nueva columna llamada new_concept donde extraemos la primera letra de las actividades para simplificar el proceso de préstamos. Por ejemplo, en la columna concept:name las actividades son A_Create Application, A_Submitted, etc. En la columna new_concept se ven de la siguiente manera:

Imagen 2.0 Actividades del proceso

Las posibles actividades en este proceso son 24 en total. Ahora, veamos los identificadores que tenemos para cada aplicación y cuántos registros hay en el dataset:

Imagen 3.0 Identificadores del proceso


Ahora que tenemos los datos necesarios para visualizar nuestro proceso, usamos la librería de PM4PY para darnos una idea de lo que pasa en nuestro proceso.

Imagen 4.0 Modelo de espagueti

Como puedes ver en la imagen, es muy difícil leer el diagrama. A esto le llamamos un Modelo de Espagueti (Spaghetti Model) ya que los diferentes caminos se entrelazan de manera compleja y, como su nombre lo dice, parece un plato de espagueti. Esto significa que el proceso es difícil de entender y seguir, ya que hay muchas opciones y caminos diferentes que se unen de manera confusa.

En general, esto ocurre cuando el proceso ha evolucionado con el tiempo o ha sido modificado por diferentes personas y departamentos sin una planificación adecuada. Pero probablemente te estés preguntando ¿cómo podemos resolver esto?

Existen diferentes soluciones que la empresa puede tomar para resolver este proceso, ya sea identificando las áreas problemáticas, rediseñando el proceso con ayuda de expertos en el área o documentando el proceso. Asumiendo que no tenemos la ayuda de un experto en el área, te enseño cómo ejemplificar el modelo por medio de estadísticas para ayudar al rediseño del proceso.

Imagen 5.0 Heuristics net

Como se puede observar, el proceso se puede entender mejor dado que estamos ajustando parámetros para entender cuáles actividades son relevantes y cuáles no. Como puedes ver, en el código usamos discover_heuristics_net con tres parámetros ajustables: dependency threshold, threshold y loop two threshold. Te explico en términos fáciles lo que significan:

  1. Dependency threshold: es el umbral que se establece para determinar si una actividad depende de otra actividad. Si el valor del dependency threshold es alto, significa que se requiere una gran cantidad de actividades en común para que dos actividades se consideren dependientes.
  2. Threshold: es el umbral que se establece para determinar la frecuencia mínima con la que una actividad debe ocurrir para ser considerada relevante. Si el valor del threshold es alto, significa que una actividad debe ocurrir con mucha frecuencia para ser considerada importante.
  3. Loop two threshold: es el umbral establecido para determinar cuántas veces una actividad puede ocurrir dentro de un bucle antes de ser considerada un "loop de dos" (dos actividades que se repiten). Si el valor del loop two threshold es alto, significa que se requiere un mayor número de repeticiones para que dos actividades sean consideradas un loop de dos.


Conclusión

Ahora que sabes qué es la Minería de Procesos y para qué se utiliza, espero que estas herramientas te ayuden a optimizar, detectar los problemas y monitorear tus procesos. Recuerda que existen parámetros en este código que pueden ser ajustados para obtener diferentes perspectivas del proceso y encontrar patrones en los datos.

Te dejo el código en mi GitHub y te invito a que intentes correrlo cambiando parámetros o con datos de tu empresa.

¡Hasta luego!

💡
Las opiniones y comentarios emitidos en este artículo son propiedad única de su autor y no necesariamente representan el punto de vista de Listopro.

Listopro Community da la bienvenida a todas las razas, etnias, nacionalidades, credos, géneros, orientaciones, puntos de vista e ideologías, siempre y cuando promuevan la diversidad, la equidad, la inclusión y el crecimiento profesional de los profesionales en tecnología.