コード例 #1
0
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")
コード例 #2
0
 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
コード例 #3
0
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)
コード例 #4
0
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]
コード例 #5
0
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
コード例 #6
0
ファイル: utils.py プロジェクト: yunhuijang/tel_web
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
コード例 #7
0
ファイル: pm4py.py プロジェクト: joLahann/fastpm
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
コード例 #8
0
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
コード例 #9
0
    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)
コード例 #10
0
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)
コード例 #11
0
ファイル: process_mining.py プロジェクト: bpm-diag/smartRPA
 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")