3. 历史数据收集:历史项目数据的来源、数据清洗与标准化、数据存储规范
历史项目数据是参数化估算模型的“燃料”。数据质量直接决定估算模型的精度与可信度。本章聚焦历史数据的三大核心环节:数据来源(从哪来)、数据清洗与标准化(怎么处理)、数据存储规范(怎么管)。
3.1 历史项目数据的来源
历史数据并非仅来自财务决算报告。有效的参数化估算需要覆盖项目全生命周期的多维度数据。常见来源包括:
| 数据来源 | 典型内容 | 获取难度 | 数据完整性 |
|---|---|---|---|
| 企业 ERP/PMIS 系统 | WBS 层级成本、工时、材料消耗、设备台班 | 低(结构化) | 高 |
| 项目竣工决算报告 | 总成本、分部分项费用、变更签证金额 | 低 | 中(汇总级) |
| 采购与合同管理系统 | 供应商报价、实际采购单价、合同结算价 | 中 | 中 |
| 现场施工日志/周报 | 人工工时、机械使用率、天气影响记录 | 高(非结构化) | 低 |
| 行业数据库/定额站发布 | 地区人工单价、材料信息价、机械台班费 | 低 | 高(宏观) |
| BIM 模型工程量清单 | 构件数量、体积、面积、长度等物理参数 | 中 | 高(几何级) |
实践提示: 优先从 ERP/PMIS 系统获取结构化数据,可节省 60% 以上的清洗工作量。对于非结构化数据(如施工日志),建议使用 NLP 工具提取关键字段,而非人工录入。
3.2 数据清洗与标准化
原始数据通常存在缺失值、异常值、单位不统一、编码混乱等问题。标准化处理是建立可靠估算模型的前提。
3.2.1 清洗流程
- 缺失值处理:删除缺失率 > 30% 的字段;对关键字段(如工程量、单价)采用同类项目均值插补或回归插补。
- 异常值检测:使用 IQR(四分位距)或 Z-score 方法识别成本异常记录,结合业务判断是否保留。
- 重复记录去重:按项目编码+WBS 编码联合去重,保留最新版本。
- 格式统一:日期统一为 YYYY-MM-DD;金额统一为人民币元(保留两位小数);面积统一为 m²。
- 编码标准化:将各系统的自定义编码映射到企业统一编码体系(如工程量清单编码 GB 50500)。
3.2.2 标准化关键字段
| 字段类别 | 原始常见问题 | 标准化规则 |
|---|---|---|
| 项目类型 | “住宅楼”“住宅”“高层住宅”混用 | 映射为三级分类:建筑-住宅-高层 |
| 计量单位 | “吨”“T”“t”“吨位”混用 | 统一为 t(吨),保留 2 位小数 |
| 成本科目 | “人工费”“劳务费”“工资”混用 | 映射为 WBS 标准科目:直接费-人工费 |
| 时间戳 | “2024/1/5”“2024-01-05”“2024年1月” | 统一为 YYYY-MM-DD |
| 货币 | 美元、人民币、欧元混用 | 按项目所在地汇率统一转换为人民币 |
避坑指南: 清洗时不要直接删除“看起来不对”的数据。例如某项目钢筋单价异常高,经核实是含了超高运输费,应保留并增加“运输条件”标记字段,而非直接删除。
3.3 数据存储规范
规范存储是数据可复用、可追溯的基础。推荐采用分层存储架构,兼顾查询效率与扩展性。
3.3.1 存储架构
下图展示了历史项目数据的标准化存储架构,从原始层到应用层逐级加工。
3.3.2 存储规范要点
- 数据库选型:结构化数据使用 PostgreSQL(支持 JSONB 扩展);非结构化文档使用 MinIO 对象存储。
- 表结构设计:每张表必须包含
project_id、wbs_code、data_source、created_at、updated_at五个基础字段。 - 版本管理:每次清洗或特征工程操作后,生成新版本号(如 v1.0 → v1.1),保留历史版本至少 3 年。
- 元数据注册:在数据目录中记录字段定义、单位、取值范围、清洗规则、责任人,方便后续复用。
- 访问控制:按角色设置读写权限,原始层仅 DBA 可写,应用层对估算工程师开放只读。
3.4 数据质量评估指标
在数据入库前,建议对清洗后的数据集进行质量评分,确保满足建模要求。
| 指标 | 计算公式 | 合格标准 |
|---|---|---|
| 完整率 | 非空记录数 / 总记录数 × 100% | ≥ 95% |
| 准确率 | 抽样验证正确数 / 抽样总数 × 100% | ≥ 98% |
| 一致性 | 编码映射正确数 / 总编码数 × 100% | 100% |
| 时效性 | 数据采集时间距当前时间 < 12 个月的比例 | ≥ 80% |
重要提醒: 数据清洗与标准化不是一次性工作。建议每季度对历史数据库执行一次质量审计,更新过时的行业定额系数,补充新项目的特征字段,确保参数化估算模型始终基于最新、最干净的数据运行。