我正在经历的问题是我想在一组数据中进行过程挖掘。但是我在将 excel 中的原始数据转换为任何流程挖掘软件所需的事件日志时遇到了困难。有没有办法修改 excel 中的数据以转换为事件日志。
2 回答
如果您的数据是 CSV 格式,您可以使用“将 csv 转换为 xes”插件将其转换为 ProM/ProMLite 中的 XES。
这根本不是一项微不足道的任务。但是,它遵循的方法在典型数据科学家的工具箱中并不常见:) 在这里,我解释了基本思想!
许多流程挖掘论文提到,现有的大多数信息系统都是 PAIS(流程感知信息系统),因此有资格对其进行流程挖掘。这是真的,但是,这并不意味着您可以开箱即用地获取数据!
解决方案是什么?您可以将现有数据(通常来自业务解决方案的关系数据库,例如 ERP 或 HIS 系统)转换为流程挖掘可以理解的事件日志。
它的工作原理是这样的:您查看包含例如患者注册数据的表格。您需要此表的患者 ID 和每个 ID 的注册时间戳。您为事件日志创建一个空表,通常称为“Activity_Table”。您考虑根据业务环境为每个活动命名。在我们的示例中,“Patient Registration”将是一个声音名称。您将所有患者 ID 及其各自的时间戳插入到 Activity_Table 中,然后为所有行添加相同的活动名称,即“Patient Registration”。结果如下所示:
|Patient-ID | Activity | timestamp |
|:----------|:--------------------:| -------------------:|
| 111 |"Patient Registration"| 2021.06.01 14:33:49 |
| 112 |"Patient Registration"| 2021.06.18 10:03:21 |
| 113 |"Patient Registration"| 2021.07.01 01:20:00 |
| ... | | |
恭喜!您有一个包含一项活动的事件日志。其余的都是一样的。您为数据库中具有时间戳的每个重要操作创建相同的表,例如,“诊断完成”、“实验室测试请求”、“治疗 A 完成”。
|Patient-ID | Activity | timestamp |
|:----------|:-----------------:| -------------------:|
| 111 |"Diagnose finished"| 2021.06.21 18:03:19 |
| 112 |"Diagnose finished"| 2021.07.02 01:22:00 |
| 113 |"Diagnose finished"| 2021.07.01 01:20:00 |
| ... | | |
然后你 UNION 所有这些迷你表并根据 Patient-ID 和时间戳对它们进行排序:
|Patient-ID | Activity | timestamp |
|:----------|:--------------------:| -------------------:|
| 111 |"Patient Registration"| 2021.06.01 14:33:49 |
| 111 |"Diagnose finished" | 2021.06.21 18:03:19 |
| 112 |"Patient Registration"| 2021.06.18 10:03:21 |
| 112 |"Diagnose finished" | 2021.07.02 01:22:00 |
| 113 |"Patient Registration"| 2021.07.01 01:20:00 |
| 113 |"Diagnose finished" | 2021.07.01 01:20:00 |
| ... | | |
如果您注意到,最后两行具有相同的时间戳。这在处理真实数据时很常见。为了避免这种情况,我们需要一个名为“排序”的额外列,它可以帮助流程挖掘算法根据底层业务的性质理解具有相同时间戳的活动的“正常”顺序。在这种情况下,我们可以很容易地知道注册发生在诊断之前,因此,我们为所有“患者注册”活动分配一个低值(例如,1)。该表可能如下所示:
|Patient-ID | Activity | timestamp |Order |
|:----------|:--------------------:|:-------------------:| ----:|
| 111 |"Patient Registration"| 2021.06.01 14:33:49 | 1 |
| 111 |"Diagnose finished" | 2021.06.21 18:03:19 | 2 |
| 112 |"Patient Registration"| 2021.06.18 10:03:21 | 1 |
| 112 |"Diagnose finished" | 2021.07.02 01:22:00 | 2 |
| 113 |"Patient Registration"| 2021.07.01 01:20:00 | 1 |
| 113 |"Diagnose finished" | 2021.07.01 01:20:00 | 2 |
| ... | | | |
现在,您有了一个流程挖掘算法可以理解的事件日志!
旁注:已经有很多尝试自动化事件日志提取过程。如果你想关注这个话题,“Eduardo González López de Murillas”的作品真的很有趣。我还可以推荐 Eduardo 等人的这篇开放获取论文。2018 年:“使用流程挖掘连接数据库:元模型和工具集”(https://link.springer.com/article/10.1007/s10270-018-0664-7)