3. 材料特征工程入门

在材料性能机器学习回归中,模型的上限往往在特征工程阶段就已经被决定。原始数据通常只有一张“配方—工艺—性能”表:成分质量分数、热处理温度、保温时间、冷却方式、晶粒尺寸、相组成、硬度、屈服强度等。若直接把成分列和工艺列丢给回归器,模型既难以收敛,也无法解释“为什么这个成分区间强度更高”。特征工程的任务,是把这些原始记录翻译成一组物理含义明确、量纲可控、分布合理的描述符,让模型学到的是材料学规律,而不是数据表的列名。

三类描述符:成分、工艺、结构

材料特征通常可分为三个层次。第一层是成分描述符:各元素的质量分数或摩尔分数,以及由它们派生的合金平均电子浓度、原子尺寸差、混合焓、混合熵、价电子浓度等。第二层是工艺描述符:温度、时间、升温速率、冷却速率、变形量、气氛等,它们决定材料经历的热力学与动力学路径。第三层是结构描述符:晶粒尺寸、相体积分数、位错密度、织构强度、孔隙率等,它们最接近性能的物理来源,但往往测量成本最高、缺失最多。

一个常见的误区是只保留成分而忽略工艺与结构。例如同样是 Ti-6Al-4V,退火态与固溶时效态的屈服强度可相差数百 MPa,若工艺列被丢弃,模型只能把差异归因于成分噪声。因此,特征集应尽量覆盖“成分—工艺—结构”链条,即使结构特征部分缺失,也可通过工艺特征间接表达。

物理化学特征:把领域知识写进特征

比原始列更有价值的是物理化学特征,即用材料学公式把原始量组合成有明确物理意义的量。以高熵合金为例,常用特征包括:

  • 混合熵 ΔSmix = −R Σ ci ln ci,反映固溶体稳定性;
  • 混合焓 ΔHmix = Σi≠j 4ΔHijmix ci cj,反映原子间亲和性;
  • 原子尺寸差 δ = 100·√(Σ ci(1−ri/r̄)²),反映晶格畸变倾向;
  • 价电子浓度 VEC = Σ ci VECi,用于区分 FCC/BCC 相稳定区间。

这些特征把“成分”从一组无关联的分数,转化为可解释的物理量。回归模型在 ΔSmix 与 δ 构成的平面上学习相形成规律,比在五维成分空间中学习更稳定,也更容易向新成分外推。

量纲统一与分布处理

不同特征量纲差异极大:温度约 10³ K,时间约 10³ s,晶粒尺寸约 10¹ μm,而成分分数在 0~1 之间。若直接输入基于距离的模型(如 KNN、SVR、神经网络),温度会主导距离计算,成分几乎被淹没。因此需要量纲统一。常用做法是对每个特征做标准化:z = (x − μ)/σ,使其均值为 0、标准差为 1;或做极差归一化:x' = (x − xmin)/(xmax − xmin),把值压缩到 [0,1]。

但标准化并非万能。材料数据常出现偏态分布:晶粒尺寸、疲劳寿命、断裂伸长率往往右偏,少数大值拉长尾部。此时可先做对数变换 log(x),再标准化;对成分分数这类有界量,可使用 logit 变换 log(x/(1−x)) 拉开两端。对存在极端离群点的特征,可考虑稳健标准化 (x − median)/IQR,避免均值和标准差被少数异常值带偏。

判断是否需要变换的实用方法:对每个特征画直方图并计算偏度。偏度绝对值大于 1 时优先考虑对数或 Box-Cox 变换;变换后再标准化,通常能明显改善线性模型和神经网络的收敛。

特征筛选与共线性处理

初始特征集往往包含几十甚至上百列,其中不少高度相关。例如 ΔSmix 与成分熵、VEC 与平均族数可能近似线性相关。共线性会使线性回归系数不稳定,也会让树模型的重要性解释失真。常用处理方式:计算特征间 Pearson 或 Spearman 相关系数矩阵,对 |r| > 0.9 的特征对,保留物理意义更明确或缺失更少的一个;也可用方差膨胀因子 VIF 检查,VIF > 10 视为存在明显共线性。

筛选时建议保留“物理可解释性优先”原则:宁可少几个特征,也不要为了提升千分之一的 R² 而引入难以解释的组合量。对回归任务,可结合递归特征消除(RFE)或基于随机森林的重要性排序,但最终特征集应由材料学判断把关。

缺失值与异常值

结构描述符缺失最常见。若缺失比例低于 5%,可对数值特征用中位数填充、类别特征用众数填充;若缺失比例较高,应增加“是否缺失”指示列,让模型自行学习缺失模式。异常值方面,成分总和偏离 100%、温度为负、晶粒尺寸为 0 等属于物理不可能值,应直接修正或剔除;而性能上的极端值可能是真实的高性能样本,不应盲目删除,可先标记并在建模时用稳健损失函数处理。

材料特征工程:从原始记录到可解释特征集 原始数据表 成分:Fe, Cr, Ni, Mo… 工艺:T, t, 冷却速率 结构:晶粒尺寸, 相分数 性能:硬度, 屈服强度 问题:量纲混杂、偏态、共线 物理化学特征构造 ΔS_mix = −R Σ cᵢ ln cᵢ ΔH_mix = Σ 4ΔH_ij cᵢ cⱼ δ = 100·√(Σ cᵢ(1−rᵢ/r̄)²) VEC = Σ cᵢ VECᵢ 把成分翻译为物理量 量纲与分布处理 ① 偏态诊断:偏度 |skew| > 1 → 对数/Box-Cox ② 标准化:z = (x − μ)/σ 或极差归一化 ③ 共线性:|r| > 0.9 或 VIF > 10 → 剔除 ④ 缺失:中位数填充 + 缺失指示列 目标:同尺度、近对称、低冗余 可解释初始特征集(示例结构) 成分特征 c_Fe, c_Cr, c_Ni ΔS_mix, ΔH_mix δ, VEC 平均原子半径 r̄ 工艺特征 T_固溶, T_时效 t_保温, 升温速率 冷却速率 变形量 ε 结构特征 晶粒尺寸 d 相体积分数 f_α 位错密度 ρ 孔隙率 特征集需经物理可解释性审查:每个特征应能回答“它代表材料的什么属性”

一个可执行的特征工程流程

下面给出一个可直接套用的处理顺序,适用于大多数材料回归任务。假设原始表有成分、工艺、结构、性能四类列,目标为屈服强度。

1. 物理校验:成分总和归一化到 100%,剔除 T<0、d≤0 等非法值
2. 构造物理化学特征:ΔS_mix、ΔH_mix、δ、VEC、r̄
3. 偏态诊断:对每个数值特征计算偏度
   - |skew| > 1 且值域为正 → log(x)
   - 成分分数 → logit(x)
4. 缺失处理:数值列中位数填充,并新增“_is_missing”指示列
5. 共线性筛查:相关系数矩阵,|r| > 0.9 的特征对保留物理意义更强者
6. 标准化:对最终特征做 z-score,保存 μ 与 σ 供预测时复用
7. 输出:特征矩阵 X 与目标向量 y,附特征字典说明

其中第 6 步的 μ 与 σ 必须来自训练集,并原样应用到验证集和测试集,否则会造成数据泄漏,使评估结果虚高。这是材料机器学习中最常见也最隐蔽的错误之一。

结果如何判断

特征工程是否有效,不能只看模型 R²。建议同时观察三点:其一,收敛性——标准化后线性模型和神经网络的训练损失是否更平滑下降;其二,重要性排序——随机森林或 SHAP 给出的前几个特征是否与材料学预期一致,例如 VEC 对相稳定性的影响、晶粒尺寸对屈服强度的 Hall-Petch 关系;其三,外推稳定性——在留出的新成分或新工艺样本上,误差是否明显小于未做特征工程的基线。若重要性排序出现“温度权重远大于成分”这类与物理直觉相悖的结果,往往说明量纲未统一或存在泄漏,应回到第 3~6 步复查。

不要用全量数据计算均值和标准差后再划分训练/测试集。正确顺序是:先划分,再在训练集上拟合标准化参数,最后变换测试集。对交叉验证,标准化应放在每一折的训练子集内完成。

特征工程不是一次性动作,而是随数据积累和模型反馈不断迭代的过程。初始特征集应保持“少而可解释”,随着对材料机理理解的深入,再逐步加入交互项、工艺路径特征或从文献中提炼的新描述符。一个能被材料学家读懂的特征表,远比一个黑箱高维特征集更有长期价值。