P3-3.2 怎样按照问题重新设计数据集¶
Section ID:
P3-3.2Version: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 首次出现观测值下降的区间在哪里?”先写下以下三项,再与解说比较。
- 选择让一行表示整个动作,还是相邻观测点之间的区间。
- 从
mean_flow、max_flow、event_id、second、flow中选择必须保留的原始依据列。 - 写出应报告的区间,以及该结果不能证明的内容。
一种答案是让一行代表动作内相邻观测之间的区间。保留 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?
- 是否区分了原始标识、计算值与练习中的分组假设?
- 能否说明均值与最大值相同而时间形态不同的例子?
- 是否保留了找回省略信息的原始记录关联,并注明未确认的比较条件?