mtt_haum/code/pm_navigation-behavior.py
2024-01-16 09:59:23 +01:00

58 lines
1.8 KiB
Python

%reset
import pm4py
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from pm4py.visualization.petri_net import visualizer as pn_visualizer
parameters = {pn_visualizer.Variants.FREQUENCY.value.Parameters.FORMAT: "png"}
###### Load data and create event logs ######
dat = pd.read_csv("results/haum/event_logfiles_2024-01-02_19-44-50.csv", sep = ";")
dat = dat[dat["date.start"] < "2020-03-13"]
dat = dat[dat["path"] != 81621] # exclude broken trace
# --> only pre corona (before artworks were updated)
event_log = pm4py.format_dataframe(dat, case_id='case', activity_key='event',
timestamp_key='date.start')
event_log.event.value_counts()
event_log.event.value_counts(normalize=True)
dfg, start_activities, end_activities = pm4py.discover_dfg(event_log)
pm4py.view_dfg(dfg, start_activities, end_activities)
#filtered_log = pm4py.filter_event_attribute_values(event_log, 'item', [80])
i_net, im, fm = pm4py.discover_petri_net_inductive(event_log)
pm4py.vis.view_petri_net(i_net, im, fm)
gviz = pn_visualizer.apply(i_net, im, fm, parameters=parameters,
variant=pn_visualizer.Variants.FREQUENCY,
log=event_log)
pn_visualizer.view(gviz)
len(i_net.places)
len(i_net.transitions)
len(i_net.arcs)
a_net, im, fm = pm4py.discover_petri_net_alpha(event_log)
pm4py.vis.view_petri_net(a_net, im, fm)
gviz = pn_visualizer.apply(a_net, im, fm, parameters=parameters,
variant=pn_visualizer.Variants.FREQUENCY,
log=event_log)
pn_visualizer.view(gviz)
len(a_net.places)
len(a_net.transitions)
len(a_net.arcs)
h_net, im, fm = pm4py.discover_petri_net_heuristics(filtered_log)
pm4py.vis.view_petri_net(h_net, im, fm)
len(h_net.places)
len(h_net.transitions)
len(h_net.arcs)