Timestral缺失值处理：用NaN和mask区分没测到与真实零人流

素材身份：作者原创输入/可编辑参考。目标工具未在本轮执行。
先打开 index.html；input.csv 是原始字段，reference.csv 是验收基准，negative.csv 是故意构造的坏样例。
actual-results.csv 保留未测状态，实际执行后再填写。

前置条件：
Python>=3.10、PyTorch>=2.4；Timestral官方推理可用CPU或GPU，不需要付费API，首次需下载模型权重。
代码Apache2.0，模型权重Modified MIT，两者许可分开；可先选5M验证输入协议，不能把CPU可跑写成固定速度保证。
本课历史观测与评估夹具为作者资料，预测值未生成；任何区间/概率示例都标参考而非模型返回。

操作步骤：
1. 准备有原因的序列
一天闭店实际0人，一天设备停机未知，其余为正常观测。
原因写在单独列，不靠值大小猜缺失。

2. 保存CSV空值语义
未知单元格保持空，读入后显式转NaN。
字符串NaN、空字符串与数值零的处理规则写清。

3. 构造观测mask
将停机日mask=false，闭店0仍为true。
mask形状需与context一致，不能错一日或少一列。

4. 检查输入一致性
显示date、value、isObserved和reason四列。
有数值但mask=false表示该点不参与观测，要明确理由。

5. 提交实际预测
按官方接口传context与observation_mask，保存版本。
本课不把补零或均值填补称作模型默认行为。

6. 比较坏输入影响
先让本地检查器拒绝把停机空值默默fillna(0)的版本。
如做效果对照，使用同一切分并保留真实输出。

7. 交付缺失台账
保存原CSV、解析数组和mask。
未推理时仅说明协议正确，不宣布缺失日已被模型准确恢复。

验收：
真实0的mask=true。
停机未知转NaN或mask=false。
CSV往返不丢失缺失原因。

官方资料：
https://github.com/mistralai/timestral

图片身份：assets/ 为内置image_gen生成的原创练习输入缩略版，原始文件保留在网站图片来源地址。可编辑SVG为作者原生排版。
