コード例 #1
0
def execute_script():
    log = xes_importer.apply(
        os.path.join("..", "tests", "input_data", "running-example.xes"))

    hw_values = sna_algorithm.apply(
        log, variant=sna_algorithm.Variants.HANDOVER_LOG)
    wt_values = sna_algorithm.apply(
        log, variant=sna_algorithm.Variants.WORKING_TOGETHER_LOG)
    sub_values = sna_algorithm.apply(
        log, variant=sna_algorithm.Variants.SUBCONTRACTING_LOG)
    ja_values = sna_algorithm.apply(
        log, variant=sna_algorithm.Variants.JOINTACTIVITIES_LOG)

    gviz_sub = pn_vis.apply(
        sub_values,
        variant=pn_vis.Variants.NETWORKX,
        parameters={pn_vis.Variants.NETWORKX.value.Parameters.FORMAT: "svg"})
    gviz_hw = pn_vis.apply(hw_values, variant=pn_vis.Variants.PYVIS)
    gviz_wt = pn_vis.apply(
        wt_values,
        variant=pn_vis.Variants.NETWORKX,
        parameters={pn_vis.Variants.NETWORKX.value.Parameters.FORMAT: "svg"})
    gviz_ja = pn_vis.apply(ja_values, variant=pn_vis.Variants.PYVIS)

    pn_vis.view(gviz_sub, variant=pn_vis.Variants.NETWORKX)
    pn_vis.view(gviz_hw, variant=pn_vis.Variants.PYVIS)
    pn_vis.view(gviz_wt, variant=pn_vis.Variants.NETWORKX)
    pn_vis.view(gviz_ja, variant=pn_vis.Variants.PYVIS)
コード例 #2
0
def discover_subcontracting_network(log: Union[EventLog, pd.DataFrame], n=2):
    """
    Calculates the subcontracting network of the process.

    Parameters
    ---------------
    log
        Event log or Pandas dataframe
    n
        n parameter for Subcontracting metric

    Returns
    ---------------
    metric_values
        Values of the metric
    """
    if type(log) not in [pd.DataFrame, EventLog, EventStream]: raise Exception("the method can be applied only to a traditional event log!")

    from pm4py.algo.organizational_mining.sna import algorithm as sna
    parameters = get_properties(log)
    parameters["n"] = n
    if check_is_pandas_dataframe(log):
        check_pandas_dataframe_columns(log)
        return sna.apply(log, variant=sna.Variants.SUBCONTRACTING_PANDAS, parameters=parameters)
    else:
        return sna.apply(log, variant=sna.Variants.SUBCONTRACTING_LOG, parameters=parameters)
コード例 #3
0
def discover_handover_of_work_network(log: Union[EventLog, pd.DataFrame], beta=0):
    """
    Calculates the handover of work network of the event log.
    The handover of work network is essentially the DFG of the event log, however, using the
    resource as a node of the graph, instead of the activity.
    As such, to use this, resource information should be present in the event log.

    Parameters
    ---------------
    log
        Event log or Pandas dataframe
    beta
        beta parameter for Handover metric

    Returns
    ---------------
    metric_values
        Values of the metric
    """
    if type(log) not in [pd.DataFrame, EventLog, EventStream]: raise Exception("the method can be applied only to a traditional event log!")

    from pm4py.algo.organizational_mining.sna import algorithm as sna
    parameters = get_properties(log)
    parameters["beta"] = beta
    if check_is_pandas_dataframe(log):
        check_pandas_dataframe_columns(log)
        return sna.apply(log, variant=sna.Variants.HANDOVER_PANDAS, parameters=parameters)
    else:
        return sna.apply(log, variant=sna.Variants.HANDOVER_LOG, parameters=parameters)
コード例 #4
0
ファイル: org.py プロジェクト: lgbanuelos/pm4py-core
def discover_handover_of_work_network(log: Union[EventLog, pd.DataFrame], beta=0):
    """
    Calculates the handover of work network of the event log.
    The handover of work network is essentially the DFG of the event log, however, using the
    resource as a node of the graph, instead of the activity.
    As such, to use this, resource information should be present in the event log.

    Parameters
    ---------------
    log
        Event log or Pandas dataframe
    beta
        beta parameter for Handover metric

    Returns
    ---------------
    metric_values
        Values of the metric
    """
    from pm4py.algo.organizational_mining.sna import algorithm as sna
    if check_is_dataframe(log):
        check_dataframe_columns(log)
        return sna.apply(log, variant=sna.Variants.HANDOVER_PANDAS, parameters={"beta": beta})
    else:
        return sna.apply(log, variant=sna.Variants.HANDOVER_LOG, parameters={"beta": beta})
コード例 #5
0
    def test_pandas(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 = pd.read_csv(
            os.path.join("..", "tests", "input_data", "running-example.csv"))
        log = dataframe_utils.convert_timestamp_columns_in_df(log)

        hw_values = sna_alg.apply(log,
                                  variant=sna_alg.Variants.HANDOVER_PANDAS)
        wt_values = sna_alg.apply(
            log, variant=sna_alg.Variants.WORKING_TOGETHER_PANDAS)
        sub_values = sna_alg.apply(
            log, variant=sna_alg.Variants.SUBCONTRACTING_PANDAS)
コード例 #6
0
    def test_1(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.apply(
            os.path.join("..", "tests", "input_data", "running-example.xes"))

        hw_values = sna_alg.apply(log, variant=sna_alg.Variants.HANDOVER_LOG)
        wt_values = sna_alg.apply(
            log, variant=sna_alg.Variants.WORKING_TOGETHER_LOG)
        sub_values = sna_alg.apply(log,
                                   variant=sna_alg.Variants.SUBCONTRACTING_LOG)
        ja_values = sna_alg.apply(log,
                                  variant=sna_alg.Variants.JOINTACTIVITIES_LOG)
コード例 #7
0
ファイル: org.py プロジェクト: lgbanuelos/pm4py-core
def discover_activity_based_resource_similarity(log: Union[EventLog, pd.DataFrame]):
    """
    Calculates similarity between the resources in the event log, based on their activity profiles.

    Parameters
    ---------------
    log
        Event log or Pandas dataframe

    Returns
    ---------------
    metric_values
        Values of the metric
    """
    from pm4py.algo.organizational_mining.sna import algorithm as sna
    if check_is_dataframe(log):
        check_dataframe_columns(log)
        return sna.apply(log, variant=sna.Variants.JOINTACTIVITIES_PANDAS)
    else:
        return sna.apply(log, variant=sna.Variants.JOINTACTIVITIES_LOG)
コード例 #8
0
ファイル: org.py プロジェクト: lgbanuelos/pm4py-core
def discover_working_together_network(log: Union[EventLog, pd.DataFrame]):
    """
    Calculates the working together network of the process.
    Two nodes resources are connected in the graph if the resources collaborate on an instance of the process.

    Parameters
    ---------------
    log
        Event log or Pandas dataframe

    Returns
    ---------------
    metric_values
        Values of the metric
    """
    from pm4py.algo.organizational_mining.sna import algorithm as sna
    if check_is_dataframe(log):
        check_dataframe_columns(log)
        return sna.apply(log, variant=sna.Variants.WORKING_TOGETHER_PANDAS)
    else:
        return sna.apply(log, variant=sna.Variants.WORKING_TOGETHER_LOG)
コード例 #9
0
def discover_activity_based_resource_similarity(log: Union[EventLog, pd.DataFrame]):
    """
    Calculates similarity between the resources in the event log, based on their activity profiles.

    Parameters
    ---------------
    log
        Event log or Pandas dataframe

    Returns
    ---------------
    metric_values
        Values of the metric
    """
    if type(log) not in [pd.DataFrame, EventLog, EventStream]: raise Exception("the method can be applied only to a traditional event log!")

    from pm4py.algo.organizational_mining.sna import algorithm as sna
    if check_is_pandas_dataframe(log):
        check_pandas_dataframe_columns(log)
        return sna.apply(log, variant=sna.Variants.JOINTACTIVITIES_PANDAS, parameters=get_properties(log))
    else:
        return sna.apply(log, variant=sna.Variants.JOINTACTIVITIES_LOG, parameters=get_properties(log))
コード例 #10
0
ファイル: org.py プロジェクト: lgbanuelos/pm4py-core
def discover_subcontracting_network(log: Union[EventLog, pd.DataFrame], n=2):
    """
    Calculates the subcontracting network of the process.

    Parameters
    ---------------
    log
        Event log or Pandas dataframe
    n
        n parameter for Subcontracting metric

    Returns
    ---------------
    metric_values
        Values of the metric
    """
    from pm4py.algo.organizational_mining.sna import algorithm as sna
    if check_is_dataframe(log):
        check_dataframe_columns(log)
        return sna.apply(log, variant=sna.Variants.SUBCONTRACTING_PANDAS, parameters={"n": n})
    else:
        return sna.apply(log, variant=sna.Variants.SUBCONTRACTING_LOG, parameters={"n": n})
コード例 #11
0
def discover_working_together_network(log: Union[EventLog, pd.DataFrame]):
    """
    Calculates the working together network of the process.
    Two nodes resources are connected in the graph if the resources collaborate on an instance of the process.

    Parameters
    ---------------
    log
        Event log or Pandas dataframe

    Returns
    ---------------
    metric_values
        Values of the metric
    """
    if type(log) not in [pd.DataFrame, EventLog, EventStream]: raise Exception("the method can be applied only to a traditional event log!")

    from pm4py.algo.organizational_mining.sna import algorithm as sna
    if check_is_pandas_dataframe(log):
        check_pandas_dataframe_columns(log)
        return sna.apply(log, variant=sna.Variants.WORKING_TOGETHER_PANDAS, parameters=get_properties(log))
    else:
        return sna.apply(log, variant=sna.Variants.WORKING_TOGETHER_LOG, parameters=get_properties(log))
コード例 #12
0
 def test_sna_clustering(self):
     log = xes_importer.apply(
         os.path.join("..", "tests", "input_data", "running-example.xes"))
     hw_values = sna_alg.apply(log, variant=sna_alg.Variants.HANDOVER_LOG)
     clusters = sna_util.cluster_affinity_propagation(hw_values)