def generate_heuristics_miner_net(xes_log): try: heu_net = heuristics_miner.apply_heu(xes_log) gviz = hn_vis_factory.apply(heu_net) hn_vis_factory.view(gviz) return {'heu_net': heu_net} except AttributeError: print("Please check your input values")
def test_heunet_running_example(self): # to avoid static method warnings in tests, # that by construction of the unittest package have to be expressed in such way self.dummy_variable = "dummy_value" log = xes_importer.import_log( os.path.join(INPUT_DATA_DIR, "running-example.xes")) heu_net = heuristics_miner.apply_heu(log) gviz = hn_vis_factory.apply(heu_net) del gviz
def execute_script(): log = xes_importer.apply( os.path.join("..", "tests", "compressed_input_data", "09_a32f0n00.xes.gz")) heu_net = heuristics_miner.apply_heu( log, parameters={"dependency_thresh": 0.99}) gviz = hn_vis_factory.apply(heu_net, parameters={"format": "svg"}) hn_vis_factory.view(gviz) net, im, fm = heuristics_miner.apply( log, parameters={"dependency_thresh": 0.99}) gviz2 = petri_vis_factory.apply(net, im, fm, parameters={"format": "svg"}) petri_vis_factory.view(gviz2)
def bot_hm(chat_id, dependency_threshold=0.99): log = get_current_log(chat_id) heu_net = heuristics_miner.apply_heu( log, parameters={"dependency_thresh": dependency_threshold}) gviz = hn_vis_factory.apply(heu_net) new_file, filename = tempfile.mkstemp(suffix="png") hn_vis_factory.save(gviz, filename) net, im, fm = heuristics_miner.apply( log, parameters={"dependency_thresh": dependency_threshold}) gviz = pn_vis_factory.apply(net, im, fm) new_file2, filename2 = tempfile.mkstemp(suffix="png") pn_vis_factory.save(gviz, filename2) return [filename, filename2]
def SPHeuristicsMiner(context): args = context.args inputFile = os.path.join(args.inputData, os.listdir(args.inputData)[0]) log = xes_importer.import_log(inputFile) heu_net = heuristics_miner.apply_heu( log, parameters={ "dependency_thresh": args.dependencyThresh, "and_measure_thresh": args.andMeasureThresh, "min_act_count": args.minActCount, "min_dfg_occurrences": args.minDfgOccurrences, "dfg_pre_cleaning_noise_thresh": args.dfgPreCleaningNoiseThresh, }, ) gviz = hn_vis_factory.apply(heu_net) hn_vis_factory.save(gviz, os.path.join(args.outputData, "heuristics-miner.png")) return args.outputData
def find_input(log, timewindow=4, parameters=None): ''' Finds input binding and output binding for each activity :param log: input log :param timewindow: size for binding (default = 4) :param parameters: parameter for heuristic miner (same with heuristic miner's parameters) :return: input_dict, (dictionary for input binding for each activity) ''' heu_net = heuristics_miner.apply_heu(log, parameters) input_cand = {} for act, values in heu_net.nodes.items(): input_cand[act] = set() for t in values.input_connections: input_cand[act].add(t.node_name) input_dict = {} for act in heu_net.nodes: input_dict[act] = set() for act in input_cand: input = set() for trace in log: for event_index, event in enumerate(trace): if event["concept:name"] == act: index = event_index for ev in trace[max(index - timewindow, 0):index]: if ev["concept:name"] in input_cand[act]: input.add(ev["concept:name"]) if len(input) > 0: input_dict[act].add(frozenset(input)) input = set() for key, value in input_dict.items(): if key in heu_net.start_activities[0].keys(): value.add(frozenset()) return input_dict
def run_heuristic_net(log,parameters={"dependency_thresh": 0.99}): heu_net = heuristics_miner.apply_heu(log, parameters) #gviz = vis_heu.apply(heu_net) #vis_heu.view(gviz) return heu_net
def find_input_output(log, timewindow=4, parameters=None): ''' Finds input binding and output binding for each activity :param log: input log :param timewindow: size for binding (default = 4) :param parameters: parameter for heuristic miner (same with heuristic miner's parameters) :return: input_dict, output_dict (dictionary for input binding and output binding for each activity) ''' heu_net = heuristics_miner.apply_heu(log, parameters) input_cand = {} output_cand = {} for act, values in heu_net.nodes.items(): input_cand[act] = set() output_cand[act] = set() for t in values.input_connections: input_cand[act].add(t.node_name) for t in values.output_connections: output_cand[act].add(t.node_name) input_dict = {} output_dict = {} input_exact = {} output_exact = {} for trace in log: case_id = trace.attributes['concept:name'] output_exact[case_id] = [] input_exact[case_id] = [] for i in range(len(trace)): output_exact[case_id].append(set()) input_exact[case_id].append(set()) for act in heu_net.nodes: input_dict[act] = set() output_dict[act] = set() for act in input_cand: input = set() output = set() for trace in log: case_id = trace.attributes['concept:name'] for event_index, event in enumerate(trace): if event["concept:name"] == act: index = event_index for ev in trace[index + 1:index + timewindow + 1]: if ev["concept:name"] in output_cand[act]: output.add(ev["concept:name"]) output_exact[case_id][event_index] = output output_dict[act].add(frozenset(output)) output = set() for ev in trace[max(index - timewindow, 0):index]: if ev["concept:name"] in input_cand[act]: input.add(ev["concept:name"]) input_exact[case_id][event_index] = input input_dict[act].add(frozenset(input)) input = set() return input_dict, output_dict, input_exact, output_exact
a2 = pcaDataWeeksFrequency[w].loc[ pcaDataWeeksFrequency[w]['result_exam_1'] == 1, ['pc2']] b2 = pcaDataWeeksFrequency[w].loc[ pcaDataWeeksFrequency[w]['result_exam_1'] == 0, ['pc2']] t2, p2 = stats.ttest_ind(a2, b2) print('Week ' + str(w) + ':') print('--PC1: ' + 't-value: ' + str(t1) + ' p-value: ' + str(p1)) print('-- Excellent: ' + str(a1.mean()[0])) print('-- Weak: ' + str(b1.mean()[0])) print('--PC2: ' + 't-value: ' + str(t2) + ' p-value: ' + str(p2)) print('-- Excellent: ' + str(a2.mean()[0])) print('-- Weak: ' + str(b2.mean()[0])) #Heuristic Miner from pm4py.objects.conversion.log import factory as conversion_factory Log = pd.concat(workingWeekLog) ex1_personal_log_1_converted = conversion_factory.apply( Log.loc[Log['org:resource'].isin(ex3_excellent.index)]) ex1_personal_log_2_converted = conversion_factory.apply( Log.loc[Log['org:resource'].isin(ex3_weak.index)]) from pm4py.algo.discovery.heuristics import factory as heuristics_miner from pm4py.visualization.heuristics_net import factory as hn_vis_factory excellent_heu_net = heuristics_miner.apply_heu( ex1_personal_log_2_converted, parameters={"dependency_thresh": 0.0}) gviz = hn_vis_factory.apply(excellent_heu_net) hn_vis_factory.view(gviz)
from pm4py.algo.discovery.heuristics import factory as heuristics_miner from pm4py.objects.log.importer.csv import factory as csv_importer from pm4py.objects.log.adapters.pandas import csv_import_adapter from pm4py.objects.conversion.log import factory as conversion_factory from pm4py.visualization.petrinet import factory as pn_vis_factory from pm4py.visualization.heuristics_net import factory as hn_vis_factory from pm4py.util import constants import os os.environ["PATH"] += os.pathsep + 'C:/Archivos de Programa/GraphViz/bin/' dataframe = csv_import_adapter.import_dataframe_from_path( 'cursos.csv', sep=",") log = conversion_factory.apply(dataframe, parameters={constants.PARAMETER_CONSTANT_CASEID_KEY: "case:concept:name", constants.PARAMETER_CONSTANT_ACTIVITY_KEY: "concept:name", constants.PARAMETER_CONSTANT_TIMESTAMP_KEY: "time:timestamp"}) net = heuristics_miner.apply_heu( log, parameters={"dependency_thresh": 0.99}) gviz = hn_vis_factory.apply(net) hn_vis_factory.view(gviz)
def create_heuristics_miner(self): heu_net = heuristics_miner.apply_heu(self._log, parameters={"dependency_thresh": 0.99}) gviz = hn_vis_factory.apply(heu_net, parameters={"format": "pdf"}) self._create_image(gviz, "heuristic_miner")