基于机器学习的难熔高熵合金相形成与屈服强度预测项目实践
1. 项目背景
难熔高熵合金具有高熔点、高强度、良好的高温稳定性等特点,在航空航天、高温结构材料和先进制造领域具有较高研究价值。但这类合金的成分空间非常大,单纯依靠实验试错成本高、周期长,因此可以引入机器学习方法,从已有文献和实验数据中学习“成分-组织-性能”之间的关系。
本项目围绕难熔高熵合金数据集,完成了两个核心任务:
- 相形成预测:根据合金成分、测试条件等特征预测相结构类型。
- 屈服强度预测:根据成分、相结构和测试温度等信息预测合金屈服强度。
项目最终输出模型指标、特征重要性图、预测对比图、清洗后的数据表,以及基于模型的候选成分逆向设计结果。
模型交叉验证结果图
下面这张图来自项目输出目录中的strength_cv_r2.png,展示了不同强度预测模型在交叉验证中的 R2 表现。
2. 项目文件结构
项目主要由一个主脚本驱动,核心文件如下:
| 文件或目录 | 作用 |
|---|---|
| generate_ml_figures.py | 主程序,负责数据清洗、建模、评估、绘图和结果导出 |
| requirements.txt | Python 依赖说明 |
| 最终数据集.xlsx | 原始合金数据,本仓库公开版未包含该数据文件 |
| outputs_full_hold12_r2/ | 模型输出、图表、CSV 和结果摘要,本仓库公开版未包含该输出目录 |
此外还有两个辅助脚本,用于指定样本范围或指定合金体系的补充预测展示。
3. 数据字段说明
当前数据表的核心字段包括:
| 字段 | 含义 |
|---|---|
| alloy_name | 合金成分名称 |
| reference | 文献编号 |
| phase_type | 相结构标签 |
| test_temperature | 测试温度 |
| yield_strength | 屈服强度 |
主脚本会进一步从alloy_name中解析出元素比例,例如Al0.25NbTaTiZr。
会被解析为多个元素比例特征:
| 元素比例特征 | 含义 |
|---|---|
| elem_Al | Al 元素归一化比例 |
| elem_Nb | Nb 元素归一化比例 |
| elem_Ta | Ta 元素归一化比例 |
| elem_Ti | Ti 元素归一化比例 |
| elem_Zr | Zr 元素归一化比例 |
这样可以把原本的化学式字符串转换为机器学习模型可直接使用的数值特征。
4. 数据清洗逻辑
材料数据通常来自文献整理、表格提取或 OCR 识别,因此原始数据中容易出现格式不一致问题。本项目在建模前做了几类清洗:
4.1 合金名称清洗
脚本会对常见 OCR 错误进行修正,例如:
| 错误识别 | 修正结果 |
|---|---|
| TI | Ti |
| AI | Al |
| SI | Si |
还会去除成分名称后面的工艺备注,例如括号中的“冷轧后”“重结晶”等说明,避免影响元素解析。
4.2 相结构标准化
相结构标签中可能存在大小写不统一、复合相写法不统一等问题。脚本会统一常见相结构标签,例如BCC、B2、FCC、HCP、Laves、M5Si3。
并进一步将复杂标签归并为更适合分类建模的phase_group。
4.3 防止目标泄漏
在屈服强度预测任务中,脚本没有把yield_strength_density作为输入特征,因为它直接由屈服强度派生,容易造成目标泄漏。
在相形成预测任务中,脚本没有把单相/多相标记作为输入,避免把与标签高度重叠的信息提前喂给模型。
5. 特征工程
模型输入特征主要分为两类。
数值特征包括:
| 数值特征 | 说明 |
|---|---|
| test_temperature | 测试温度 |
| elem_Al | Al 元素比例 |
| elem_Hf | Hf 元素比例 |
| elem_Nb | Nb 元素比例 |
| elem_Ta | Ta 元素比例 |
| elem_Ti | Ti 元素比例 |
| elem_Zr | Zr 元素比例 |
类别特征包括:
| 类别特征 | 说明 |
|---|---|
| phase_group | 归并后的相结构类别 |
| load_mode | 拉伸或压缩测试模式 |
| equilibrium_condition | 热处理或平衡条件 |
数值特征使用中位数填补缺失值,并进行标准化;类别特征使用众数填补缺失值,并进行 One-Hot 编码。整个预处理流程和模型被封装到sklearn.pipeline.Pipeline中,保证训练、验证和预测使用完全一致的数据处理方式。
6. 相形成预测
相形成预测是一个分类任务,目标变量为phase_group。项目中主要比较了RandomForestClassifier和MLPClassifier。
评估指标包括:
| 指标 | 含义 |
|---|---|
| Accuracy | 分类准确率 |
| F1-macro | 宏平均 F1 分数 |
| 交叉验证准确率 | 多折验证下的平均准确率 |
输出结果包括:
| 输出文件 | 作用 |
|---|---|
| phase_confusion_matrix.png | 相形成预测混淆矩阵 |
| phase_feature_importance.png | 相形成预测特征重要性图 |
| phase_model_comparison.png | 相形成模型对比图 |
| phase_cv_accuracy.png | 相形成交叉验证准确率图 |
| typical_phase_prediction.csv | 典型样本相形成预测结果 |
这些结果可以用于判断模型对不同相结构的识别效果,也可以观察哪些元素或实验条件对相形成影响更大。
7. 屈服强度预测
屈服强度预测是一个回归任务,目标变量为yield_strength。项目中比较了RandomForestRegressor、ExtraTreesRegressor、MLPRegressor和GradientBoostingRegressor。
评估指标包括:
| 指标 | 含义 |
|---|---|
| R2 | 回归拟合优度 |
| MAE | 平均绝对误差 |
| RMSE | 均方根误差 |
| 交叉验证R2 | 多折验证下的 R2 表现 |
输出结果包括:
| 输出文件 | 作用 |
|---|---|
| strength_prediction_scatter.png | 屈服强度真实值与预测值散点图 |
| strength_feature_importance.png | 屈服强度预测特征重要性图 |
| strength_model_comparison.png | 强度预测模型对比图 |
| strength_cv_r2.png | 强度预测交叉验证 R2 图 |
| typical_strength_prediction.csv | 典型样本强度预测结果 |
其中预测散点图可以直观看出模型预测值与真实值之间的偏差,特征重要性图则可以辅助分析影响屈服强度的关键因素。
8. 留出测试与模型泛化
普通随机划分训练集和测试集时,同一合金成分的不同温度或不同状态样本可能同时出现在训练集和测试集中,这会让测试结果看起来更好。
项目中加入了按唯一合金成分留出的测试方式:holdout_unique_alloys。
这种方式会把部分合金成分整体作为测试集,更接近真实应用中“预测未见过的新成分”的场景。因此它比普通随机划分更严格,也更能反映模型泛化能力。
9. 逆向设计思路
除了预测已有样本的性能,项目还加入了一个简单的逆向设计流程:
- 根据已有元素集合生成大量候选成分。
- 使用训练好的强度预测模型评估候选成分。
- 选择预测屈服强度最高的候选合金。
- 导出最佳候选成分和全量逆向设计结果。
相关输出文件包括:
| 输出文件 | 作用 |
|---|---|
| inverse_design_best_alloy.csv | 预测强度最高的候选合金成分 |
| inverse_design_from_predicted_strength_all_rows.csv | 每条样本对应的逆向设计近似结果 |
| dataset_with_inverse_design_horizontal.xlsx | 原数据与逆向设计结果的横向汇总文件 |
这个流程不能直接替代实验验证,但可以作为材料设计中的候选筛选工具,帮助研究者缩小实验搜索范围。
10. 项目优点
这个项目的优点主要有:
- 从化学式中自动解析元素比例,减少手工整理特征的工作量。
- 使用 Pipeline 管理预处理和模型训练,流程比较规范。
- 同时覆盖相形成分类和强度回归两个任务。
- 输出图表、CSV 和 JSON 摘要,方便论文作图和结果汇报。
- 考虑了目标泄漏和更严格的合金成分留出测试。
- 增加了简单的逆向设计流程,使模型不只停留在预测阶段。
11. 当前局限
项目也存在一些可以继续优化的地方:
- 数据量仍然较小,模型结果容易受样本分布影响。
- 神经网络模型对小数据集不一定稳定,需要更多调参或更大数据量支持。
- 特征主要来自成分和实验条件,尚未引入更丰富的物理描述符。
- 逆向设计结果只是模型预测结果,需要进一步实验验证。
- 如果源 Excel 列名或格式变化,数据读取逻辑还需要增强鲁棒性。
12. 总结
本项目展示了一个材料机器学习项目的完整闭环:数据整理、数据清洗、特征工程、分类预测、回归预测、可视化分析和逆向设计。
对于难熔高熵合金这类成分空间巨大的材料体系,机器学习可以帮助研究者更快地发现潜在规律、筛选候选成分,并为后续实验提供方向。
当然,模型预测不能替代材料实验。更合理的使用方式是让模型作为“前置筛选器”,在大量候选配方中优先挑出值得实验验证的方向,从而降低试错成本、提高研发效率。
公司信息
公司名称:贵州安然智行科技有限责任公司
公司性质:企业
官网:https://www.gzarzx.com
网站名称:安然智行
ICP 备案号:黔ICP备2023010920号-4