data_normalizer 数据标准化 Skill
功能概述
本 skill 对 JSONL 中的单一数值字段进行标准化处理,支持 Z-score 标准化和 Min-Max 归一化两种方式。 它会在保留原始值的同时写回标准化结果,并为每条命中的记录补充变更标记。
触发条件
当用户请求以下任务时,应使用此 skill:
- 数值标准化
- 归一化
- 字段规整
- 范围映射
- Z-score 变换
核心参数说明
必需参数
| 参数 | 说明 |
|---|---|
--input |
输入JSONL文件路径 |
--output |
输出JSONL文件路径 |
--field |
要标准化的字段名 |
--method |
标准化方法 |
可选参数
| 参数 | 说明 | 默认值 |
|---|---|---|
--new_min |
Min-Max 目标最小值 | 0 |
--new_max |
Min-Max 目标最大值 | 1 |
--log_file |
日志文件路径 | - |
输入文件格式
{"id": 1, "score": 87.65}
{"id": 2, "score": 120}
{"id": 3, "score": -5}
输入必须是 JSONL,每行是一条 JSON 记录。 目标字段应为可转成数值的字段;无法转换的值会被跳过。
使用方法
Z-score 标准化
python scripts/run_data_normalizer.py \
--input ./input.jsonl \
--output ./output.jsonl \
--field score \
--method z_score
Min-Max 归一化到 [0, 100]
python scripts/run_data_normalizer.py \
--input ./input.jsonl \
--output ./output.jsonl \
--field score \
--method min_max \
--new_min 0 \
--new_max 100
输出示例
每条被处理记录会增加以下字段:
_{field}_normalized: true_{field}_original: 原始值
示例输出:
{"id": 1, "score": 0.44, "_score_normalized": true, "_score_original": 87.65}
环境要求
- Python 3.x
- 只依赖标准库
注意事项
- 只处理可转为数值的字段值。
z_score会按当前样本整体均值和标准差计算。min_max在所有值相等时会统一映射为new_min。- 小数位统一 / 四舍五入需求请使用 DC3_RoundOff。