这个项目能做什么
# 面向FCC MPEA中Hall–Petch强化的物理信息机器学习
本仓库是《Acta Materialia》论文“Revisiting Hall–Petch strengthening in FCC multi-principal element alloys: what grain size, composition, and processing can and cannot explain”(作者:M. Mulukutla、S. P. Padhy等)的配套材料。
其中包含完整数据集、完整分析流程、论文中呈现的每一张结果表与图、LaTeX源码、由实时结果重新生成的综合报告,以及锁定论文规范值的回归测试。
## 问题
当把插值误当作迁移,或把物理启发的描述符在未证明其相较实测输入提供额外信息的情况下解读为机制时,机器学习性能模型可能误导合金设计。本仓库针对Al–Co–Cr–Cu–Fe–Mn–Ni–V体系中94个FCC合金条件的屈服强度(YS)与维氏硬度(HV),端到端处理该问题。
## 五个模型族
分析按论文的五个族组织。族编号越高表示灵活性越强,而非物理保真度越高。
- **族1**:经典Hall–Petch(经典与替代晶粒尺寸定律)
- **族2**:物理描述符(VLC、Labusch、Toda-Caraballo;Wen;PCA-OLS)
- **族3**:成分/工艺(M模型层级,含M15)
- **族4**:非线性机器学习(匹配的线性与非线性估计器)
- **族5**:符号回归(PySR、SISSO、固定闭式形式)
验证协议包括5折、LOO、LOBO、文献与奇异性检查。
## 主要结果
所有数值均为汇总的折外Q²,并在测试时从`data/derived/data_with_vlc.csv`重新计算。
| 目标 | 模型 | 5折 | LOO | LOBO |
|---|---|---|---|---|
| YS | 族1 经典Hall–Petch | 0.405 | 0.406 | 0.373 |
| YS | 族2 PCA-OLS(折内) | 0.462 | 0.480 | 0.362 |
| YS | 族3 M3(成分依赖σ₀) | 0.666 | 0.652 | 0.625 |
| YS | **族3 M15(+ SD_grain交互)** | **0.731** | **0.694** | **0.694** |
| YS | 族4 Lasso S2(固定设置) | 0.683 | 0.674 | 0.621 |
| YS | 族4 LightGBM S2(固定设置) | 0.632 | 0.574 | 0.615 |
| YS | 族4 贝叶斯岭回归 S2(嵌套ARMOTE-CV) | 0.685 | 0.666 | 0.613 |
| HV | 族1 经典Hall–Petch | 0.086 | 0.136 | −0.077 |
| HV | 族4 LightGBM S1 | 0.195 | 0.323 | 0.112 |
| HV | 族5 固定形式(后选择) | 0.725 | 0.727 | 0.636 |
三项发现贡献了大部分结论:
- **晶粒分布宽度仅在特定形式下有帮助。** 将SD_grain作为独立加性项加入M3,使LOO升至0.668,但使LOBO降至0.595。若改为让其修正Hall–Petch项(M15),则两者均为0.694,且相对M3的ΔBIC = −20.1。加性对照正是使这一区别可见的关键。
- **在匹配输入下,非线性没有带来收益。** 在批次留出验证下,Lasso与LightGBM分别达到0.621与0.615,且自助法区间重叠。
- **没有任何结果能迁移到文献。** 所有评估的闭式形式在直接测量文献记录上R²均为负,因此该集合被报告为压力测试而非外部基准。
## 目录结构
```
data/raw/ Grain_Size_Summary_v3.xlsx — 唯一真实输入
data/derived/ 计算得到的描述符,由`make data`重新生成
scripts/
_config.py 共享路径;使每个族文件夹可导入
_figstyle.py 所有图共用一套调色板与一套字号体系
00_data_preparation/ 描述符、VLC量、特征阶梯
01_family1_grain_size/ 标度律、重复内斜率
02_family2_physics_descriptors/ SSS基准、冗余审计、PCA-OLS
03_family3_composition_processing/ M模型层级、SD_grain模型
04_family4_nonlinear_ml/ 调参面板、匹配输入比较
05_family5_symbolic_regression/ PySR网格、SISSO变体
06_validation/ 分组CV、文献测试、奇异性审计
07_hardness_tabor/ Tabor比与HV–YS秩分析
figures/ 所有发表图
results/ CSV输出;每个均由具名脚本生成
analysis_plots/ 探索性与诊断图
paper/ main.tex、supplementary.tex、references.bib、figures/
report/ generate_report.py + Comprehensive_Analysis_Report.docx
notebook/ 生成器 + 生成的.ipynb
docs/ reproducing.md、validation_protocol.md
tests/ 锁定规范值的回归测试
```
## 快速开始
```bash
pip install -r requirements.txt
make test # ~1 s — 重新计算并检查每个主要数值
make figures # 从缓存结果重新生成所有发表图
make report # 从实时结果重建Word报告
make paper # 构建main.pdf与supplementary.pdf
make help # 所有目标
```
完整阶段顺序与耗时:`docs/reproducing.md`。
## 可复现性
`make test`会**从原始派生数据**重新计算M模型层级、族1基线、Tabor比与数据集审计,并将其与论文中打印的数值进行断言。它还会检查每张图与每张表是否在正文中被交叉引用,以及每个被包含的图文件是否存在。若分析发生变化,测试会在论文发生漂移之前失败。
**嵌套ARMOTE-CV面板**是经过验证而非重新运行。其生成器为每折存储一个Optuna研究、一个选定参数集,以及一对特征与目标缩放器。在六个LOBO折中,五个调参的贝叶斯岭回归超参数取六个不同值,且每个缩放器仅在其训练划分上拟合。重新加载这些对象并预测每个留出批次,可精确复现全部六个折分数,并给出汇总LOBO Q²为0.613(RMSE 50.5 MPa)。因此,嵌套性是被证明的,而非被断言的。
这些产物随仓库提供,位于`scripts/04_family4_nonlinear_ml/armote_cv/`下——关于保留了哪些内容以及哪些内容留在上游,请参见该处的README。
有两项分析为**存档性**,不会在此处、论文中或由`make`重新生成:
| 存档结果 | 原因 |
|---|---|
| 贝叶斯PSIS-LOO堆叠权重 | 未保留PyMC后验抽样 |
| 外层PySR性能 | 方程是在完整数据前沿上选择的 |
论文将这些报告为存档性,而**可以**重新计算的相应频率学派量(M15的OLS系数、信息准则与分组CV分数)由`make sdgrain`重新生成。
## 图
每张图都导入`scripts/_figstyle.py`,因此整个文档使用一套Okabe–Ito调色板与一套字号体系。颜色从不是唯一通道:批次带有不同标记形状,模型族通过位置区分,带符号量会打印其数值。图按其最终印刷宽度绘制,因此脚本中的点大小与页面上的点大小一致。该调色板已在模拟绿色盲、红色盲与蓝色盲条件下检查。
## 引用
参见`CITATION.cff`。Zenodo的存档元数据位于`.zenodo.json`。
## 许可
MIT——参见`LICENSE`。原始实验数据集与文献汇编已包含;被引文献PDF不再分发。
## 致谢
由美国陆军研究实验室根据合作协议W911NF-22-2-0106赞助。
评论
0 评分人数达到10人后显示
登录后参与讨论。