2. 材料性能数据工程基础
机器学习模型的上限,往往在数据进入模型之前就已经被决定了。对材料性能预测而言,数据工程不是“把表格读进来、删掉空值”这么简单,而是要回答四个问题:数据从哪里来、不同来源的数据如何对齐、脏数据如何识别与修复、最终以什么统一格式交给模型。本章围绕材料数据库、文献数据抽取、实验与计算数据融合、数据清洗与标准化流程四条主线展开。
一、材料数据库:结构化数据的起点
材料数据库是数据工程最稳定的来源。常见类型包括晶体结构数据库(如 ICSD、Materials Project)、相图与热力学数据库(如 CALPHAD 类数据库)、力学性能数据库(如 NIMS 疲劳数据、MatWeb)以及面向特定体系的专业库(如高温合金、电池材料库)。它们通常以“材料标识—成分—工艺—结构—性能”的字段组织,一条记录对应一个样品或一次计算。
使用数据库时,首先要读懂它的主键与单位约定。例如 Materials Project 中一个 mp-id 对应一种结构,能量单位是 eV/atom,弹性模量是 GPa;而实验数据库常以质量分数给出成分,性能单位可能是 MPa 或 ksi。若直接拼接,就会出现“同一物理量数值差 1000 倍”的隐性错误。因此,建立一张字段映射表是接入任何数据库的第一步:把来源字段、物理含义、单位、缺失标记、可信度等级逐列登记。
二、文献数据抽取:从非结构化文本到结构化记录
文献是材料数据最丰富也最杂乱的来源。抽取流程通常分为三步:定位、解析、登记。定位阶段通过关键词、材料体系、性能类型筛选目标文献;解析阶段从正文、表格、图中提取“成分—工艺—性能”三元组;登记阶段把结果写入结构化表,并保留原文出处(DOI、页码、表号、图号)。
实际抽取中最容易出错的是条件信息丢失。例如同一篇文献报道了固溶温度 1050 ℃、时效 760 ℃/16 h 后的屈服强度 1100 MPa,如果只记录“1100 MPa”而丢掉热处理制度,这条数据在建模时就无法与其它工艺条件对齐。因此建议每条记录至少包含:材料牌号或成分、工艺路径、测试条件(温度、应变速率、环境)、性能值、单位、来源标识、抽取人/抽取时间。对于从图中读取的数值,应标注“图估读”并给出误差范围,例如 ±20 MPa,避免与表格精确值混用。
三、实验与计算数据融合:对齐口径比合并表格更难
实验数据反映真实材料行为,但样本少、噪声大、条件分散;计算数据(DFT、MD、CALPHAD)覆盖广、条件可控,但与实验存在系统性偏差。融合的关键不是简单拼接,而是建立“可比性”。
以弹性模量为例:DFT 计算通常给出 0 K、无缺陷、理想晶体的弹性常数,而实验拉伸模量是在室温、含缺陷、多晶条件下测得。两者相差 5%~15% 属于正常。融合时应做三件事:第一,统一物理量定义(如把 C11、C12 换算为 Voigt-Reuss-Hill 平均模量);第二,标注数据来源类型(实验/计算),作为模型的一个特征或分组变量;第三,对计算数据做系统性校正,例如用同体系实验值拟合一个线性偏移,而不是直接把计算值当作实验值使用。
下面这张图展示了从多源数据到统一训练集的融合链路,重点标出了各环节的口径对齐点与风险点。
四、数据清洗与标准化流程
清洗的目标不是“让数据好看”,而是让每一条记录都能被模型正确解释。建议按以下顺序执行,每一步都保留可追溯的日志。
第一步,字段映射与单位换算。把不同来源的列名映射到统一字段,例如 YS、yield_strength、Rp0.2 都映射为 yield_strength_MPa。单位换算写成显式函数,避免手工乘系数。成分若以 wt% 给出,需按元素原子量换算为 at%,公式为 at_i = (wt_i / M_i) / Σ(wt_j / M_j)。
第二步,缺失值与异常值处理。缺失值不能一律填 0,因为 0 在物理上可能代表“无该元素”或“未测量”。建议区分三类:结构性缺失(该字段本就不适用)、随机缺失(可插补)、系统性缺失(需回查来源)。异常值检测可先用物理边界过滤,例如屈服强度为负、温度低于 0 K、成分总和偏离 100% 超过 2%,再结合箱线图或 3σ 规则标记可疑点。
第三步,去重与一致性检查。同一材料在多个数据库中重复出现时,若性能值差异小于测量不确定度,可保留一条并记录来源;若差异显著,应保留全部并标注来源,让模型学习来源差异,而不是简单平均。
第四步,标准化输出。最终训练表建议包含:样本 ID、成分向量、工艺参数、测试条件、目标性能、单位、来源类型、质量等级、原始出处。质量等级可定义为 A(表格精确值)、B(图估读)、C(计算值)、D(推测值),建模时可作为样本权重或分组依据。