流程挖掘技术及其应用

流程挖掘是一种依赖于数据的方法论,用于发现、监控和改进企业内部已经存在的流程。其目标是探索现有业务流程中的低效环节,并解决这些关键问题。遗憾的是,许多企业通常将这一考虑放在次要位置。

流程挖掘提供了一种优雅的解决方案。任何想要探索流程流或监督复杂业务流程的人都会对流程挖掘所带来的改进表示赞赏。通过聚合数据并考虑反馈,这些技术得到了改进。结果是构建了一个更高效的流程,它建立在过去的成功之上。此外,流程挖掘还提供了可视化和其他输出,全面展示了组织流程中的任何瓶颈、低效或差距,并揭示了改进的方向。

为什么流程改进很重要?

长期以来,流程改进方法一直在发展。自那时以来,企业一直在寻找提高质量、降低成本的方法。与过去相比,由于以下原因,流程改进在今天变得更加重要:

  • 今天的客户对质量有更高的期望
  • 市场竞争更加激烈
  • 不可预测的经济环境

流程挖掘的应用领域

流程挖掘可以应用于不同的行业,以下是一些实施流程挖掘的应用领域:

  • 制造业
  • 服务业
  • 医疗保健
  • 审计与银行业务
  • 电信
  • 消费品
  • 教育/研究等

流程挖掘的两个重要方面

流程挖掘包括两个重要方面:

  1. 事件:指的是一个案例或一个活动
  2. 日志:是关于事件的额外信息

流程挖掘的能力

流程挖掘主要包括:

  • 过程发现:识别业务流程,映射和分析组织的现有业务流程,揭示他们不知道的流程步骤,并实现流程偏差。
  • 一致性检查:比较过程模型与同一过程的事件日志。目标是检查事件日志是否符合模型,反之亦然。
  • 增强:使用事件日志中记录的实际流程信息来扩展或改进现有的过程模型。这个过程旨在改变或扩展现有模型。

过程发现通过事件日志识别业务流程,映射和分析组织的现有业务流程,揭示他们不知道的流程步骤,并实现流程偏差。发现技术采用事件日志并产生过程模型,而不使用任何先验信息。

过程发现遵循以下步骤:

  • 识别实际流程
  • 识别流程偏差

一致性检查是一种技术,用于比较过程模型与同一过程的事件日志。目标是检查事件日志是否符合模型,反之亦然。

一致性检查遵循以下步骤:

  • 分析不符合案例的数据共享
  • 确定根本原因

增强的想法是使用事件日志中记录的实际流程信息来扩展或改进现有的过程模型。这个过程旨在改变或扩展现有模型。

增强遵循以下步骤:

  • 识别流程瓶颈
  • 提出改进建议

PM4Py是一个支持Python中流程挖掘算法的Python库。它是完全开源的,并且打算用于工业项目。

!pip install pm4py

现在让以CSV格式加载数据,但事件日志推荐的数据格式是XES(可扩展事件流)。

process_csv = pd.read_csv("E:\Process_Mining\sepsis_df.csv", encoding='cp1252')

显示数据:

process_csv.head()

在开发过程模型之前,需要转换特征,以下是转换代码:

parameters = {constants.PARAMETER_CONSTANT_CASEID_KEY:CASEID_GLUE , constants.PARAMETER_CONSTANT_ACTIVITY_KEY:ACTIVITY_KEY } event_log = log_converter.apply(process_csv, parameters=parameters) print(event_log)

过程发现在收集和分析系统可用数据后自动创建业务流程表示。过程模型是使用不同的事件/活动生成的。

以下是不同的过程发现算法:

  • Alpha Miner
  • Inductive Miner
  • Heuristic Miner
  • Directly-Follows Graph

Alpha Miner是第一个弥合事件日志或观察数据与发现过程模型之间差距的算法。Alpha Miner可以构建Petri网形式的过程模型,而不使用额外的知识。

运行Alpha Miner的结果如下:

  • Petri网模型,其中所有转换都是可见的、唯一的,并且对应于分类的事件。
  • 初始标记 - 描述Petri网模型执行开始时的状态。
  • 最终标记 - 描述Petri网模型执行结束时的状态。
  • 过程执行从初始标记中包含的事件开始,并在最终标记中包含的事件结束。
  • 不能处理长度为一或二的循环。
  • 不能发现不可见和重复的任务。
  • 不善于处理噪声。
from pm4py.algo.discovery.alpha import factory as alpha_miner net, im, fm = alpha_miner.apply(event_log) from pm4py.visualization.petri_net import visualizer as pn_visualizer gviz = pn_visualizer.apply(net, im, fm) pn_visualizer.view(gviz)
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485