Process Mining com PM4PY

Process Mining com PM4PY

Tenho certeza de que você se identificaria com o Process Mining se pensar em como usa aplicativos ou sites em sua vida diária.

Por exemplo, imagine quando você compra produtos online ou reserva viagens: você sempre gera dados que podem ser analisados ​​com Process Mining. As empresas o usam para melhorar a experiência do usuário, o que significa que as alterações feitas nos processos podem ter um impacto direto em como pessoas como você ou eu interagimos com aplicativos e sites.

Outro exemplo: se uma empresa melhorar seu processo de compra online usando o Process Mining, os clientes podem se sentir mais satisfeitos com a experiência e ter mais vontade de comprar nessa loja novamente.

Para dar alguns exemplos mais específicos, existem muitas empresas conhecidas que usam essa técnica para melhorar seus processos. Aqui estão alguns:

  1. Siemens: Ela usou o Process Mining para analisar seu processo de produção de motores elétricos e obteve uma melhoria de 25% no processo de produção.
  2. Volkswagen: Por meio do Process Mining, analisou o processo de montagem de seus veículos e otimizou a eficiência da cadeia de suprimentos.
  3. KLM Royal Dutch Airlines: Graças ao Process Mining, ele analisou o processo de carregamento e reduziu em 50% os atrasos no envio de bagagens.


O que é Process Mining?


Process Mining ou Mineração de Processos é uma técnica que analisa processos de negócios registrando eventos em bancos de dados. Basicamente, trata-se de pegar os dados que são gerados no dia a dia de uma empresa como transações, cliques, interações com clientes e fornecedores, entre outros.

Esses dados são analisados ​​para entender como os processos fluem e quais são os problemas (bottlenecks) que podem afetar a eficiência do negócio. Com o auxílio de ferramentas especializadas, o Process Mining permite visualizar os processos graficamente e obter informações valiosas que melhoram a tomada de decisão. Isso é valioso porque podemos otimizar processos para obter maior eficiência e lucratividade na empresa.

Quais casos de uso tem?


Algumas das aplicações mais comuns são:

  1. Melhoria de processos: é usado para identificar atrasos e outras ineficiências nos processos de negócios, a fim de otimizá-los e melhorá-los.
  2. Conformidade normativa: as empresas estão sujeitas a regulamentos e regulamentos que devem cumprir. Process Mining é usado para monitorar e auditar processos de negócios, bem como garantir que eles cumpram esses padrões.
  3. Análise do cliente: ele pode ser usado para analisar o comportamento do cliente e melhorar a experiência do usuário, identificando padrões de uso, preferências e problemas que afetam a satisfação do cliente.
  4. Análise de vendas: ele pode ser usado para analisar o desempenho de vendas, identificar padrões de compra de clientes e melhorar a lucratividade dos negócios.
  5. Análise de riscos: Com o Process Mining, os riscos do negócio como fraudes, erros ou problemas de segurança, são identificados e avaliados para tomar medidas e minimizá-los.


Quais ferramentas posso usar?

Existem diversas ferramentas para Process Mining. Alguns dos mais populares são:

  1. ProM: É uma plataforma de software que permite a análise de processos.
  2. Disco: Se você é um estudante, pode obter a licença gratuita para usá-lo. O Disco é fácil de usar e inclui visualização de processos e identificação de problemas.
  3. Celonis: Ele se concentra na melhoria dos processos de negócios em tempo real. O Celonis inclui a identificação de problemas nos processos, a análise de eficiência e a automatização de processos.
  4. PM4PY: É uma biblioteca Python. Ele fornece ferramentas e algoritmos para descobrir, analisar e melhorar os processos de negócios.

Quais dados eu preciso para fazer Process Mining?

Os dados necessários para fazer a mineração de processos podem ser resumidos em quatro elementos principais: IDs, atividades, timestamps e durações. Esses elementos são os que permitem analisar os processos de negócios e obter informações úteis para melhorá-los.

  1. IDs: eles são identificadores exclusivos atribuídos a cada caso ou instância de processo. Por exemplo, se analisarmos o processo de atendimento de uma empresa, cada caso pode ser o registro de uma solicitação de serviço.
  2. Actividades: As atividades são as ações realizadas no processo. Por exemplo, no processo de atendimento ao cliente, as atividades podem ser registro de solicitação, atribuição de caso e resolução de problemas.
  3. Timestamps: São os momentos em que as atividades são realizadas. Isso permite ver a ordem em que as atividades são executadas e analisar o tempo que cada uma leva. Por exemplo, se um cliente solicitar atendimento às 10h00. m. e seu problema está resolvido às 10h30. m., você pode analisar o tempo que levou para resolver o problema.
  4. Durações: As durações são o tempo necessário para concluir cada atividade. Isso permite analisar a eficiência do processo e detectar possíveis problemas (bottlenecks). Por exemplo, se uma atividade leva muito mais tempo que as demais, você pode analisar por que isso está acontecendo e tomar providências para melhorá-la.


Process Mining com PM4PY


PM4Py é uma biblioteca Python para executar tarefas de Process Mining e pode ser usada para analisar arquivos no formato XES, como BPI Challenge 2017.xes.gz. Este dataset foi usado na competição BPI Challenge 2017 e contém dados de eventos reais de pedidos de empréstimos de um instituto financeiro holandês.

O objetivo da competição era descobrir padrões de comportamento nos dados e usá-los para otimizar o processo de empréstimo. O objetivo deste tutorial é ensinar como usar o PM4PY para visualizar o processo e encontrar possíveis padrões.

Exportamos os dados .xes para Python da seguinte forma:

Imagem 1.0 - BPI Challenge 2017 dataset.

Agora, aplicando a teoria dos dados necessários para fazer Process Mining a este dataset, obtemos o seguinte:

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

Para este tutorial, uma nova coluna chamada new_concept onde extraímos a primeira letra das atividades para simplificar o processo de empréstimo. Por exemplo, na coluna concept:name as actividades são A_Create Application, A_Submitted, etc. Na coluna new_concept eles ficam assim:

Imagem 2.0 - Actividades do processo.

As atividades possíveis neste processo são 24 no total. Agora vamos ver os identificadores que temos para cada aplicação e quantos registros existem no dataset:

Imagen 3.0 - Identificadores de processo.


Agora que temos os dados necessários para visualizar nosso processo, utilizamos a biblioteca PM4PY para nos dar uma ideia do que acontece em nosso processo.

Imagen 4.0 Modelo de espagueti

Como você pode ver na imagem, é muito difícil ler o diagrama. Chamamos isso de Modelo Espaguete (Spaghetti Model) já que os diferentes caminhos se entrelaçam de forma complexa e, como o nome diz, parece um prato de espaguete. Isso significa que o processo é difícil de entender e seguir, pois são muitas opções e caminhos diferentes que se juntam de forma confusa.

Em geral, isso ocorre quando o processo evoluiu ao longo do tempo ou foi modificado por diferentes pessoas e departamentos sem o devido planejamento. Mas você provavelmente está se perguntando como podemos resolver isso?

Existem diferentes soluções que a empresa pode adotar para resolver esse processo, seja identificando áreas problemáticas, redesenhando o processo com a ajuda de especialistas da área ou documentando o processo. Partindo do princípio que não temos a ajuda de um especialista na área, vou mostrar como exemplificar o modelo por meio de estatísticas para ajudar a redesenhar o processo.

Imagem 5.0 - Heuristics net.

Como pode ser visto, o processo pode ser melhor compreendido, pois estamos ajustando parâmetros para entender quais atividades são relevantes e quais não são. Como você pode ver, no código que usamos discover_heuristics_net com três parâmetros ajustáveis: dependency threshold, threshold e loop two threshold. Eu explico em termos fáceis o que eles significam:

  1. Dependency threshold: é o limite estabelecido para determinar se uma atividade depende de outra atividade. Se o valor de dependency threshold é alto, significa que é necessário um grande número de atividades em comum para que duas atividades sejam consideradas dependentes.
  2. Threshold: É o limite estabelecido para determinar a frequência mínima com que uma atividade deve ocorrer para ser considerada relevante. Se o valor de threshold é alto, significa que uma atividade deve ocorrer com muita frequência para ser considerada importante.
  3. Loop two threshold: é o limite estabelecido para determinar quantas vezes uma atividade pode ocorrer dentro de um loop antes de ser considerada um "loop de dois" (duas atividades que se repetem). Se o valor de loop two threshold é alto, significa que é necessário um número maior de repetições para que duas atividades sejam consideradas duas voltas.

Conclusión

Agora que você já sabe o que é Process Mining e para que serve, espero que essas ferramentas ajudem você a otimizar, detectar problemas e monitorar seus processos. Lembre-se que existem parâmetros neste código que podem ser ajustados para obter diferentes perspectivas sobre o processo e encontrar padrões nos dados.

Eu deixo o código em mim GitHub e convido você a tentar executá-lo alterando parâmetros ou com dados de sua empresa.

Até logo!

💡
As opiniões e comentários expressos neste artigo são de propriedade exclusiva de seu autor e não representam necessariamente o ponto de vista da Revelo.

A Revelo Content Network acolhe todas as raças, etnias, nacionalidades, credos, gêneros, orientações, pontos de vista e ideologias, desde que promovam diversidade, equidade, inclusão e crescimento na carreira dos profissionais de tecnologia.