Sobre el proyecto
# Aprendizaje automático informado por la física para el endurecimiento Hall–Petch en MPEA FCC
Este repositorio sirve como material complementario del manuscrito de *Acta Materialia* titulado "Revisiting Hall–Petch strengthening in FCC multi-principal element alloys: what grain size, composition, and processing can and cannot explain", de M. Mulukutla, S. P. Padhy, et al.
Contiene el conjunto de datos completo, el flujo de análisis completo, cada tabla de resultados y figura presentadas en el artículo, las fuentes LaTeX, un informe exhaustivo regenerado a partir de resultados en vivo y pruebas de regresión que fijan los valores canónicos del manuscrito.
## La pregunta
Los modelos de propiedades basados en aprendizaje automático pueden inducir a error en el diseño de aleaciones cuando la interpolación se confunde con la transferencia, o cuando un descriptor con motivación física se interpreta como un mecanismo sin demostrar que aporta información más allá de las entradas medidas. Este repositorio aborda ese problema de principio a fin sobre el límite elástico (YS) y la dureza Vickers (HV) de 94 condiciones de aleación FCC en el sistema Al–Co–Cr–Cu–Fe–Mn–Ni–V.
## Cinco familias de modelos
Los análisis se organizan según las cinco familias del manuscrito. Un número de familia mayor significa más flexibilidad, no más fidelidad física.
- **Familia 1**: Hall–Petch clásico (leyes de tamaño de grano clásicas y alternativas)
- **Familia 2**: Descriptores físicos (VLC, Labusch, Toda-Caraballo; Wen; PCA-OLS)
- **Familia 3**: Composición / procesamiento (la jerarquía del modelo M, incl. M15)
- **Familia 4**: ML no lineal (estimadores lineales y no lineales emparejados)
- **Familia 5**: Regresión simbólica (PySR, SISSO, formas cerradas fijas)
El protocolo de validación incluye 5-fold, LOO, LOBO, literatura y comprobaciones de singularidad.
## Resultados principales
Todos los valores son Q² agrupado fuera de muestra, recalculados en tiempo de prueba a partir de `data/derived/data_with_vlc.csv`.
| Objetivo | Modelo | 5-fold | LOO | LOBO |
|---|---|---|---|---|
| YS | Familia 1 Hall–Petch clásico | 0.405 | 0.406 | 0.373 |
| YS | Familia 2 PCA-OLS (contenido en el fold) | 0.462 | 0.480 | 0.362 |
| YS | Familia 3 M3 (σ₀ dependiente de la composición) | 0.666 | 0.652 | 0.625 |
| YS | **Familia 3 M15 (+ interacción SD_grain)** | **0.731** | **0.694** | **0.694** |
| YS | Familia 4 Lasso S2 (ajustes fijos) | 0.683 | 0.674 | 0.621 |
| YS | Familia 4 LightGBM S2 (ajustes fijos) | 0.632 | 0.574 | 0.615 |
| YS | Familia 4 Bayesian ridge S2 (ARMOTE-CV anidado) | 0.685 | 0.666 | 0.613 |
| HV | Familia 1 Hall–Petch clásico | 0.086 | 0.136 | −0.077 |
| HV | Familia 4 LightGBM S1 | 0.195 | 0.323 | 0.112 |
| HV | Familia 5 forma fija (post-seleccionada) | 0.725 | 0.727 | 0.636 |
Tres hallazgos hacen la mayor parte del trabajo:
- **La anchura de la distribución de granos solo ayuda en una forma específica.** Añadir SD_grain a M3 como término aditivo independiente eleva el LOO a 0.668 pero reduce el LOBO a 0.595. Dejar que modifique en cambio el término de Hall–Petch (M15) da 0.694 en ambos, con ΔBIC = −20.1 frente a M3. El control aditivo es lo que hace visible esa distinción.
- **La no linealidad no aporta nada con entradas emparejadas.** Lasso y LightGBM alcanzan 0.621 y 0.615 bajo validación con lotes retenidos y con intervalos bootstrap solapados.
- **Nada se transfiere a la literatura.** Toda forma cerrada evaluada tiene R² negativo en los registros de literatura de medición directa, por lo que ese conjunto se reporta como prueba de estrés en lugar de como referencia externa.
## Estructura
```
data/raw/ Grain_Size_Summary_v3.xlsx — la única entrada verdadera
data/derived/ descriptores calculados, regenerados por `make data`
scripts/
_config.py rutas compartidas; hace importable cada carpeta de familia
_figstyle.py una paleta y una escala tipográfica para cada figura
00_data_preparation/ descriptores, cantidades VLC, escalera de características
01_family1_grain_size/ leyes de escala, pendientes dentro de réplicas
02_family2_physics_descriptors/ benchmark SSS, auditoría de redundancia, PCA-OLS
03_family3_composition_processing/ jerarquía del modelo M, modelos SD_grain
04_family4_nonlinear_ml/ panel ajustado, comparación con entradas emparejadas
05_family5_symbolic_regression/ rejilla PySR, variantes SISSO
06_validation/ CV agrupada, prueba de literatura, auditoría de singularidad
07_hardness_tabor/ ratio de Tabor y análisis de rango HV–YS
figures/ cada figura de publicación
results/ salidas CSV; cada una es producida por un script con nombre
analysis_plots/ figuras exploratorias y de diagnóstico
paper/ main.tex, supplementary.tex, references.bib, figures/
report/ generate_report.py + Comprehensive_Analysis_Report.docx
notebook/ generador + .ipynb generado
docs/ reproducing.md, validation_protocol.md
tests/ pruebas de regresión que fijan los valores canónicos
```
## Inicio rápido
```bash
pip install -r requirements.txt
make test # ~1 s — recalcula y comprueba cada valor principal
make figures # regenera todas las figuras de publicación desde resultados en caché
make report # reconstruye el informe de Word desde resultados en vivo
make paper # construye main.pdf y supplementary.pdf
make help # todos los objetivos
```
Orden completo de etapas y tiempos: `docs/reproducing.md`.
## Reproducibilidad
`make test` recalcula la jerarquía del modelo M, las líneas base de la Familia 1, el ratio de Tabor y la auditoría del conjunto de datos **a partir de los datos derivados brutos** y los contrasta con los valores impresos en el manuscrito. También comprueba que cada figura y tabla está referenciada de forma cruzada en el texto y que existe cada archivo de figura incluido. Si un análisis cambia, las pruebas fallan antes de que el manuscrito pueda desviarse.
El **panel ARMOTE-CV anidado** se verifica en lugar de reejecutarse. Su generador almacena un estudio Optuna, un conjunto de parámetros seleccionado y un par de escaladores de características y objetivo por fold. A lo largo de los seis folds LOBO, los cinco hiperparámetros ajustados de Bayesian ridge toman seis valores distintos, y cada escalador se ajusta solo con su partición de entrenamiento. Recargar esos objetos y predecir cada lote retenido reproduce exactamente las seis puntuaciones de fold y da un Q² LOBO agrupado de 0.613 (RMSE 50.5 MPa). Por tanto, el anidamiento se demuestra, no se afirma.
Esos artefactos se distribuyen con el repositorio, en `scripts/04_family4_nonlinear_ml/armote_cv/` — véase el README allí para saber qué se conservó y qué se dejó en origen.
Dos análisis son **de archivo** y no se regeneran aquí, ni en el manuscrito, ni mediante `make`:
| Resultado de archivo | Motivo |
|---|---|
| Pesos de apilamiento Bayesian PSIS-LOO | No se conservaron las muestras posteriores de PyMC |
| Rendimiento de PySR en el bucle externo | las ecuaciones se seleccionaron sobre frentes de datos completos |
El manuscrito reporta estos como de archivo, y las cantidades frecuentistas correspondientes que *sí* pueden recalcularse (coeficientes OLS de M15, criterios de información y puntuaciones de CV agrupada) se regeneran con `make sdgrain`.
## Figuras
Cada figura importa `scripts/_figstyle.py`, por lo que todo el documento usa una única paleta Okabe–Ito y una única escala tipográfica. El color nunca es el único canal: los lotes llevan formas de marcador distintas, las familias de modelos se separan por posición y las cantidades con signo imprimen su valor. Las figuras se dibujan a su anchura final impresa, de modo que un tamaño de punto en el script es el mismo tamaño de punto en la página. La paleta se comprobó bajo deuteranopia, protanopia y tritanopia simuladas.
## Cita
Véase `CITATION.cff`. Los metadatos de archivo para Zenodo están en `.zenodo.json`.
## Licencia
MIT — véase `LICENSE`. Se incluyen el conjunto de datos experimental bruto y la recopilación de literatura; los PDF de la literatura citada no se redistribuyen.
## Agradecimiento
Patrocinado por el Army Research Laboratory bajo el Acuerdo de Cooperación W911NF-22-2-0106.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.