58 lines
1.8 KiB
Python
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)
|