跳转至

P3-3.2 怎样按照问题重新设计数据集

Section ID: P3-3.2 Version: v2026.09.19

所谓重新设计数据集,是按照当前问题重新考虑样本(sample)单位和列(column)结构。也就是说,要重新决定什么算一行(row)、哪些列要留下、拿什么和什么比较。动作单位表、比较报告(comparison report)、预测问题候选表之所以彼此不同,差别正是从这一步重设计里长出来的。

原始日志也是数据集。重新设计不是让它取得数据集资格,而是按当前问题选择一行代表什么、保留什么信息。也可以保留原始序列不变。

用同一份记录构造动作级表

只使用前一节虚构原始日志中的 A、B、E、F。每行记录动作中的一个时点,second 是动作内经过的秒数。下面流量按 L/min 读取。四次动作的 recipe 都是 standard,但文件没有证明其他运行条件也一致。

问题一是“各次动作的观测平均流量是多少?”让一行代表一次动作,按原始记录的 event_id 归组,计算四个测量值的算术平均。这是观测点均值,不保证是完整动作的时间加权均值。

event_id batch_id 0、1、2、3 秒的 flow mean_flow max_flow
A B-17 0.0, 1.4, 1.6, 1.2 1.050 1.6
B B-17 0.1, 1.0, 1.1, 0.9 0.775 1.1
E B-19 0.0, 1.2, 1.4, 1.0 0.900 1.4
F B-19 0.1, 1.5, 1.6, 1.3 1.125 1.6

例如,A 的 mean_flow 是 (0.0+1.4+1.6+1.2)/4 = 1.050。event_id、batch_id 是原始标识,mean_flow、max_flow 是由 flow 算出的值。表中保留四个时点值,是为了展示计算依据。如果实际摘要省略序列,就不再保留数值升降顺序,因此应另行关联原文件、版本和事件标识。

从同一动作表比较两个组

问题二是“近期组的平均流量与基准组相差多少?”本练习假定指定 A、B 为 baseline,E、F 为 recent。原文件没有实际发生日期,也没有该分组列;这里不是根据事件名称或批次编号推断先后。实际使用时须确认日期与选取条件。

group 包含的 event_id event_count mean_of_event_means
baseline A, B 2 0.9125
recent E, F 2 1.0125

基准组为 (1.050+0.775)/2 = 0.9125,近期组为 (0.900+1.125)/2 = 1.0125。每次动作权重相同,单位为 L/min。比较两个组的结果行如下。

recent_members baseline_members recent_mean baseline_mean diff
E, F A, B 1.0125 0.9125 +0.1000

由于 diff = recent_mean−baseline_mean,本练习近期组均值高出 0.1000 L/min。这不是故障或不稳定判定。两个组来自不同批次,其他运行条件也未确认,因此仅凭此表无法得知差异原因。

行单位相同,问题不同也需要不同的列

现在用同样四次动作比较两个问题:“哪次动作的平均流量最高?”与“哪次动作在最后观测区间下降最陡?”看表之前,请从 event_id、mean_flow、max_flow、second、flow 中选出各问题需要的列。

两个问题都让一行代表一次动作,但均值问题需要 mean_flow,最后下降问题需要用最后两个时刻及流量计算斜率。这里最后区间均为 2~3 秒,所以 last_slope = (flow_3−flow_2)/(3−2)。单位为 L/min/s,斜率越负,下降越陡。

event_id mean_flow (L/min) flow_2 (L/min) flow_3 (L/min) last_slope (L/min/s)
A 1.050 1.6 1.2 -0.4
B 0.775 1.1 0.9 -0.2
E 0.900 1.4 1.0 -0.4
F 1.125 1.6 1.3 -0.3

均值最高的是 F,但最后下降最陡的是 A 和 E。例如,A 为 (1.2−1.6)/1 = −0.4,F 为 −0.3。max_flow 不提供最后两个值及其顺序,不能替代最后斜率。这只是选定区间的下降比较,并非整个动作的不稳定性或故障判定。

汇总保留和丢失的信息

结构 一行的含义 保留的信息 仅凭摘要无法确认的内容
原始时点表 动作中的一个时点 时刻与各测量值 结果标签与原因需要独立依据
动作摘要表 一次动作 动作均值、最大值、原始记录关联键 数值顺序与变化开始时刻
分组摘要表 选定的一组动作 成员、动作数、组均值 动作之间的差异与各自序列

只靠均值和最大值无法回答“是否不稳定”。把 A 的序列 0.0, 1.4, 1.6, 1.2 改为 0.0, 1.6, 1.2, 1.4,均值仍为 1.050,最大值仍为 1.6,但峰值时刻从第 2 秒变成第 1 秒。如果问题关心波动形态或变化起点,就要保留序列或回到原始日志。找到变化时刻也不等于确认原因。

并非所有问题都需要基准线列或摘要表。比较时点模式时,可以原样保留时间与测量值。若要用于监督学习,仍需按前一节检查输入、目标与标签依据。

问题如何改变样本与表

flowchart TD
    A[写下问题] --> B{要比较什么}
    B -- 时点形态 --> C[保留时点序列]
    B -- 动作均值 --> D[每次动作汇总为一行]
    B -- 分组均值 --> E[每个选定组汇总为一行]
    C --> F[保留原始关联并注明丢失的信息]
    D --> F
    E --> F

新问题是“A 首次出现观测值下降的区间在哪里?”先写下以下三项,再与解说比较。

  1. 选择让一行表示整个动作,还是相邻观测点之间的区间。
  2. 从 mean_flow、max_flow、event_id、second、flow 中选择必须保留的原始依据列。
  3. 写出应报告的区间,以及该结果不能证明的内容。

一种答案是让一行代表动作内相邻观测之间的区间。保留 event_id、起止 second 和起止 flow,计算 结束流量−开始流量。A 在 0~1、1~2、2~3 秒的差值分别为 +1.4、+0.2、−0.4,因此首次观测下降的区间是 2~3 秒。这无法确定区间内精确的下降起点或原因。

对于前面重排后的序列 0.0, 1.6, 1.2, 1.4,差值变为 +1.6、−0.4、+0.2,答案变成 1~2 秒。只保留均值与最大值的表无法区分这两个答案。也可以把完整序列保存在一行中,但不能丢失时间与流量的对应关系。

检查清单

  • 能否根据均值、最后斜率或相邻区间问题选择所需的列与行单位,并解释理由?
  • 能否解释同一日志生成的动作级表与分组表各自一行的含义?
  • 是否从原始记录重现了 A 的均值及组均值差 0.1000?
  • 是否区分了原始标识、计算值与练习中的分组假设?
  • 能否说明均值与最大值相同而时间形态不同的例子?
  • 是否保留了找回省略信息的原始记录关联,并注明未确认的比较条件?

来源与参考资料

  • Google for Developers, Machine Learning Glossary:label、labeled example、unlabeled example。用于确认监督学习的输入与结果角色,以及无标签案例的区别。 原文 / 确认日期: 2026-09-19
  • W3C, PROV-Overview (2013)。用于支持追踪数据生成涉及的对象、活动、人员及处理步骤与版本。 原文 / 确认日期: 2026-09-19