Sobre gatos e mineração de processos





“O gato sobreviverá na minha casa? Eu me perguntei antes de pegar meu amigo peludo do abrigo de animais de estimação. E decidi testar minha hipótese usando Process Mining, esta relativamente nova, mas desenvolvendo ativamente direção de análise de processo. Entre os produtos de software nesta área, existem alternativas suficientes, nomeadamente: Celonis, Disco, ProM, Apramore. Decidi experimentar a biblioteca de linguagem Python - PM4PY (Process Mining for Python), cuja primeira versão apareceu no GitHubhá pouco mais de um ano, no final de 2018. Sua peculiaridade é que se trata de um software livre, e não possui restrições tanto quanto à quantidade de arquivos baixados, quanto ao número de eventos considerados no log (log de eventos). PM4PY também possui uma extensa documentação que descreve a funcionalidade básica - exemplos de código e informações de referência podem ser encontrados no site oficial - pm4py.org .



Em primeiro lugar - ... não, não aviões, mas dados! PM4PY suporta vários formatos de entrada. Entre eles: CSV (delimitado por vírgulas), XES (eXtensible Event Stream) e Parquet. O mais simples, tanto em compreensão quanto em termos de funcionalidade disponível, é o formato CSV.







Foi neste formato que foram apresentados os dados da rotina matinal, utilizados posteriormente no exemplo considerado do processo. Em uma série de eventos pela manhã como "levantar", "café da manhã", "escovar os dentes", etc. uma nova etapa significativa foi adicionada como "alimentar o gato". Este exemplo foi gerado artificialmente em uma tabela do MS Excel e depois salvo em CSV (o número de dias de simulação é 39 e o número total de eventos é 250). A importação de dados ocorre em duas linhas de código. No primeiro, a chamada fábrica de importação (a classe Python correspondente desta biblioteca) é carregada e, na segunda, o nome do arquivo de dados é alimentado para a entrada desta “fábrica” e atribuído à variável necessária.



Um registro carregado de fora (em um formato ou outro) pode ser alimentado para a entrada de "Mineiros" - algoritmos que analisam o registro de eventos carregado na memória e tentam construir um modelo assumido do processo na forma de uma rede de Petri usando esses dados de entrada. Exemplos de algoritmos disponíveis em PM4PY: Alpha, IMDFb, Heuristic. Mas, se você se lembra, eu não estava interessado no gráfico teórico academicamente rigoroso do modelo de processo, mas na questão puramente prática da sobrevivência do gato.



E, portanto, estamos avançando para uma análise prática muito mais interessante do processo na forma de gráficos DFG (Directly-Follows Graph), onde os vértices do gráfico são os eventos do log de eventos que carregamos e as bordas direcionadas conectam pares de eventos que aconteceram um após o outro pelo menos uma vez ... A vantagem dessa visualização é a exibição detalhada de todas as transições possíveis. A desvantagem é a desordem excessiva da imagem com linhas de conexão, cujo número aumenta acentuadamente com o aumento no número de ações no log e a multivariância das etapas reais que ocorreram no processo observado.











Percebe-se que o já difícil processo da rotina matinal com o acréscimo de uma etapa adicional com a alimentação do bichinho tornou-se ainda mais difícil. DFG pode ser traçado em termos de frequência, ou seja, quantas transições foram de um vértice para outro. E você pode construir no contexto da eficiência no tempo, escolhendo como indicador o valor médio do tempo entre eventos. Você também pode escolher o valor mínimo, máximo ou mediana como indicador.



Para ser capaz de restringir a área de dados em consideração, PM4PY fornece a capacidade de trabalhar com filtros (você pode definir filtros por colunas da mesma forma que na biblioteca pandas) e com opções (sequências típicas de etapas) do log. Por exemplo, nas figuras acima, os DFGs foram exibidos com todas as opções, sem restrições. Mas você pode escolher, por exemplo, as 3 sequências de etapas mais frequentes, e então a imagem ficará muito mais simples.



Recorde-se que a simplicidade da imagem à direita surgiu devido ao descarte de opções mais raras, que contêm opções atípicas mas não interessantes para nós, mas bastante aceitáveis, e desvios importantes do processo padrão que nos interessam muito.







Como resultado, vemos que, mesmo nas sequências de eventos mais típicas, a etapa "alimentar o gato" ocorreu apenas em 4 dos 8 casos, sendo que na metade dos casos (4) essa ação foi pulada e não houve retorno para ela. Essa. neste caso, é melhor não ter pressa ainda e, sem assumir responsabilidades adicionais, trabalhar a tua disciplina e empenho, sem tranquilizar o animal com cuidado, o que de facto não será.



All Articles