使用PM4PY进行流程挖掘的实用方法

2023年11月20日 由 alex 发表 976 0

介绍


流程挖掘是一个快速发展的领域,位于业务流程管理和数据科学的交叉点。它专注于基于从组织信息系统中提取的事件日志来分析业务流程。过程挖掘的主要目标是将事件数据转化为见解和行动。本文将深入探讨过程挖掘的定义、意义、方法、应用以及未来的潜力。


3


定义和意义


过程挖掘被定义为一种通过从当今系统中现成的事件日志中提取知识来发现、监控和改进真实过程的技术。流程挖掘的重要性在于它能够提供对业务流程实际执行方式的循证理解。与依赖访谈和观察的传统方法不同,流程挖掘提供了一种客观、数据驱动的视图,揭示了组织内流程的真实情况。


方法


流程挖掘方法通常涉及三种主要类型:发现、一致性和增强。


  • 发现:这是关于从事件日志中提取流程模型。该发现方法不需要先验模型;它根据数据生成一个,显示过程是如何实际发生的。


  • 一致性:一致性检查包括将现有流程模型与同一流程的事件日志进行比较,以检查现实是否符合该模型。它有助于识别偏差、瓶颈和效率低下。


  • 增强:此方法侧重于使用事件日志中记录的有关实际流程的信息来扩展或改进现有流程模型。这可以包括添加预测能力,或者识别和推荐流程改进。


应用程序


过程挖掘在各个行业中有着不同的应用。在医疗保健领域,它可以优化患者流,在制造业,它可以提高供应链效率,在金融领域,它有助于审计和合规。最显著的应用之一是在客户旅程映射领域,它可以帮助企业了解并改善客户与其服务的互动。


挑战和未来方向


尽管过程挖掘具有潜力,但它面临着数据质量问题、隐私问题和对熟练人员的需求等挑战。过程挖掘的未来方向包括将机器学习和人工智能结合起来,以提供更先进的预测分析,与其他数据源集成以获得更丰富的见解,以及为非专家用户开发更用户友好的工具。


代码


用Python创建一个完整的流程挖掘项目需要几个步骤,包括数据集准备、流程发现和可视化。在这里,我将提供一个如何使用Python进行基本流程挖掘的简化示例,利用一个假设的数据集和pm4py库,这是一个流行的流程挖掘工具。


设置环境


首先,你需要安装pm4py软件包。你可以使用pip执行此操作:


pip install pm4py


准备数据集


流程挖掘通常对事件日志进行操作。对于这个示例,我将创建一个简单的合成数据集来表示流程日志。在实际场景中,通常会从数据库或文件加载数据集。


import pandas as pd
from pm4py.objects.conversion.log import converter as log_converter
from pm4py.algo.discovery.alpha import algorithm as alpha_miner
from pm4py.visualization.petri_net import visualizer as pn_visualizer
# Sample data with the required column names
data = {
    'case:concept:name': ['A', 'A', 'A', 'B', 'B', 'C', 'C', 'C', 'C'],
    'concept:name': ['Start', 'Check', 'End', 'Start', 'End', 'Start', 'Check', 'Approve', 'End'],
    'time:timestamp': pd.to_datetime(['2023-01-01 09:00', '2023-01-01 10:00', '2023-01-01 11:00',
                                      '2023-01-02 09:00', '2023-01-02 10:00',
                                      '2023-01-03 09:00', '2023-01-03 10:00', '2023-01-03 11:00', '2023-01-03 12:00'])
}
df = pd.DataFrame(data)
# Convert the DataFrame to an Event Log
log = log_converter.apply(df)
# Apply the Alpha Miner algorithm
net, initial_marking, final_marking = alpha_miner.apply(log)
# Visualize the Petri net
gviz = pn_visualizer.apply(net, initial_marking, final_marking)
pn_visualizer.view(gviz)


该代码将创建并显示所发现的过程模型的Petri网可视化。


4


笔记


  • 所提供的数据集是合成的且过于简单。真实世界的事件日志更为复杂,可能需要进行预处理。


  • pm4py支持用于流程发现(如Alpha Miner、Heuristic Miner、Inductive Miner)、一致性检查和流程增强的各种算法。算法的选择取决于你分析的具体需求。


  • 过程挖掘可能是计算密集型的,尤其是对于大型数据集。制定有效的数据处理策略非常重要。


这个例子提供了一个基本的框架。要将其应用于真实世界的场景,你需要根据数据集和分析需求的具体情况进行调整。


结论


流程挖掘是一种强大的工具,它弥合了传统流程建模和以数据为中心的分析技术之间的差距。它能够根据确凿证据发现、分析和改进业务流程,这使它成为旨在提高运营效率和客户满意度的组织的宝贵资产。随着技术的不断发展,流程挖掘的范围和能力有望扩大,使其成为业务流程管理工具包中不可或缺的工具。

文章来源:https://medium.com/@evertongomede/unveiling-business-processes-a-practical-approach-to-process-mining-with-pm4py-acd30ac13c92
欢迎关注ATYUN官方公众号
商务合作及内容投稿请联系邮箱:bd@atyun.com
评论 登录
写评论取消
回复取消