使用PM4Py进行一致性检查时令牌重放诊断返回空对象求助
问题解决:PM4Py Token Replay诊断函数返回空对象
可能的排查与解决步骤
检查Token Replay参数配置
确保parameters_tbr中开启了诊断所需的核心参数,比如:parameters_tbr = { pm4py.util.constants.PARAMETER_CONSTANT_ACTIVITY_KEY: "concept:name", pm4py.util.constants.PARAMETER_CONSTANT_TIMESTAMP_KEY: "time:timestamp", "enable_pltr_fitness": True, "enable_trp_fitness": True }这些参数是生成完整
trans_fitness和unwanted_activities数据的前提,缺失会导致诊断函数无有效数据可处理。验证
trans_fitness的实际结构
即使对象非空,也要确认内部是否包含诊断所需字段。打印第一条trace的诊断数据:print(trans_fitness[0])正常结果应包含
fitness值、transitions匹配明细、对应trace索引等字段。如果这些字段缺失,诊断函数无法生成有效输出。标准化事件日志格式
duration_diagnostics依赖正确的时间戳和活动字段格式,用PM4Py工具标准化日志:log = pm4py.format_dataframe(log, activity_key="concept:name", timestamp_key="time:timestamp")确认日志中时间戳为
datetime类型(而非字符串),否则无法计算活动持续时间。核对PM4Py版本兼容性
不同版本的PM4Py在诊断函数的参数和返回结构上可能存在差异。尝试升级到最新稳定版:pip install --upgrade pm4py或查阅对应版本的官方文档,确认
diagnose_from_trans_fitness的参数要求是否有变更。手动验证诊断逻辑
若以上步骤无问题,手动提取异常数据测试:# 遍历trans_fitness筛选低适配度trace for idx, trace_diag in enumerate(trans_fitness): if trace_diag["fitness"] < 0.8: log_trace = log[idx] # 打印对应trace的活动与时间戳 for event in log_trace: print(event["concept:name"], event["time:timestamp"])如果手动能获取到有效数据,说明可能需要给
diagnose_from_trans_fitness显式传入activity_key或timestamp_key参数。
内容的提问来源于stack exchange,提问作者Dries H
相关产品推荐
相关产品推荐

