À propos des chats et de l'extraction de processus
«Le chat survivra-t-il dans ma maison? Je me suis demandé avant de récupérer mon ami à quatre pattes du refuge pour animaux de compagnie. Et j'ai décidé de tester mon hypothèse au moyen de Process Mining, cette direction relativement nouvelle, mais en développement actif de l'analyse des processus. Parmi les produits logiciels dans ce domaine, il existe un nombre suffisant d'alternatives, notamment: Celonis, Disco, ProM, Apramore. J'ai décidé d'essayer la bibliothèque de langage Python - PM4PY (Process Mining for Python), dont la première version est apparue sur GitHubil y a un peu plus d'un an, fin 2018. Sa particularité est qu'il s'agit d'un logiciel libre, et il n'a pas de restrictions tant en termes de quantité de fichiers téléchargés que de nombre d'événements pris en compte dans le journal (journal des événements). PM4PY dispose également d'une documentation complète décrivant les fonctionnalités de base - des exemples de code et des informations de référence peuvent être trouvés sur le site officiel - pm4py.org .
Tout d'abord - ... non, pas des avions, mais des données! PM4PY prend en charge plusieurs formats d'entrée. Parmi eux: CSV (Comma Separated), XES (eXtensible Event Stream) et Parquet. Le plus simple, à la fois en termes de compréhension et en termes de fonctionnalités disponibles, est le format CSV.
C'est dans ce format que les données sur la routine du matin ont été présentées, utilisées plus tard dans l'exemple considéré du processus. Dans une série d'événements du matin tels que «se lever», «petit-déjeuner», «se brosser les dents», etc. une nouvelle étape importante a été ajoutée comme «nourrir le chat». Cet exemple a été généré artificiellement dans un tableau MS Excel, puis enregistré au format CSV (le nombre de jours de simulation est de 39 et le nombre total d'événements est de 250). L'importation de données se produit dans deux lignes de code. Dans la première, la fabrique dite d'importation (la classe Python correspondante de cette bibliothèque) est chargée, et dans la seconde, le nom du fichier de données est fourni à l'entrée de cette «fabrique» et affecté à la variable souhaitée.
Un journal chargé de l'extérieur (dans un format ou un autre) peut être alimenté à l'entrée de "Miners" - algorithmes qui analysent le journal des événements chargé en mémoire et tentent de construire un modèle supposé du processus sous la forme d'un réseau de Petri en utilisant ces données d'entrée. Exemples d'algorithmes disponibles dans PM4PY: Alpha, IMDFb, Heuristic. Mais, si vous vous en souvenez, je n'étais pas intéressé par le graphe théorique académiquement rigoureux du modèle de processus, mais par la question purement pratique de la survie du chat.
Et par conséquent, nous passons à une analyse pratique beaucoup plus intéressante du processus sous la forme de graphes DFG (Directly-Follows Graph), où les sommets du graphe sont les événements du journal des événements que nous avons chargé, et les arêtes dirigées connectent des paires d'événements qui se sont produits l'un après l'autre au moins une fois ... L'avantage de cette vue est l'affichage détaillé de toutes les transitions possibles. L'inconvénient est l'encombrement excessif de l'image avec des lignes de connexion, dont le nombre augmente fortement avec l'augmentation du nombre d'actions dans le journal et la multivariance des étapes réelles qui se sont produites dans le processus observé.
On peut voir que le processus déjà difficile de la routine matinale avec l'ajout d'une étape supplémentaire avec l'alimentation de l'animal est devenu encore plus difficile. DFG peut être tracé en termes de fréquence, c'est-à-dire combien de transitions étaient d'un sommet à un autre. Et vous pouvez construire dans un contexte d'efficacité dans le temps, en choisissant comme indicateur la valeur moyenne du temps entre les événements. Vous pouvez également choisir la valeur minimale, maximale ou médiane comme indicateur.
Pour pouvoir affiner la zone de données considérée, PM4PY offre la possibilité de travailler avec des filtres (vous pouvez définir des filtres par colonnes de la même manière que dans la bibliothèque pandas) et avec des options (séquences d'étapes typiques) du journal. Par exemple, dans les figures ci-dessus, les DFG étaient affichés avec toutes les options, sans restrictions. Mais vous pouvez choisir, par exemple, les 3 séquences d'étapes les plus fréquentes, puis l'image sera beaucoup plus simple.
Il convient de rappeler que la simplicité de l'image de droite est apparue en raison de la suppression d'options plus rares, qui contiennent des options atypiques mais pas intéressantes pour nous, mais tout à fait acceptables, et des écarts importants par rapport au processus standard qui nous sont très intéressants.
Du coup, on voit que, même dans les séquences d'événements les plus typiques, l'étape «nourrir le chat» n'a eu lieu que dans 4 cas sur 8, et dans la moitié des cas (4) cette action a été sautée et il n'y a pas eu de retour. Ceux. dans ce cas, il vaut mieux ne pas se précipiter pour l'instant et, sans prendre de responsabilité supplémentaire, travailler sur sa discipline et son engagement, sans rassurer l'animal avec soin, ce qui en fait ne le sera pas.