process_mining / pm4py /examples /dfg_filt_act_paths_perc.py
linpershey's picture
Add 'pm4py/' from commit '80970016c5e1e79af7c37df0dd88e17587fe7bcf'
b4ba3ec
raw
history blame
1.32 kB
import pm4py
from pm4py.algo.filtering.dfg import dfg_filtering
from examples import examples_conf
import importlib.util
def execute_script():
log = pm4py.read_xes("../tests/input_data/receipt.xes")
dfg, sa, ea = pm4py.discover_dfg(log)
act_count = pm4py.get_event_attribute_values(log, "concept:name")
# keep the specified amount of activities
dfg, sa, ea, act_count = dfg_filtering.filter_dfg_on_activities_percentage(dfg, sa, ea, act_count, 0.3)
# keep the specified amount of paths
dfg, sa, ea, act_count = dfg_filtering.filter_dfg_on_paths_percentage(dfg, sa, ea, act_count, 0.3)
if importlib.util.find_spec("graphviz"):
# view the DFG
from pm4py.visualization.dfg import visualizer as dfg_visualizer
gviz = dfg_visualizer.apply(dfg, activities_count=act_count, parameters={dfg_visualizer.Variants.FREQUENCY.value.Parameters.START_ACTIVITIES: sa,
dfg_visualizer.Variants.FREQUENCY.value.Parameters.END_ACTIVITIES: ea,
dfg_visualizer.Variants.FREQUENCY.value.Parameters.FORMAT: examples_conf.TARGET_IMG_FORMAT})
dfg_visualizer.view(gviz)
if __name__ == "__main__":
execute_script()