Data and code for: Devitrification-aware multi-objective inverse design of oxide optical glasses using explainable machine learning

Published: 20 October 2026| Version 1 | DOI: 10.17632/fmk7vc8jjz.1
Contributors:
Abdelaziz GAHMOUSSE,
,

Description

Data and code for the article "Devitrification-aware multi-objective inverse design of oxide optical glasses using explainable machine learning" (A. Gahmousse, A. Gahmousse, H. Taallah). Data: two CSV files of oxide glass compositions (atomic fractions) extracted from the SciGlass database. TgTliqND300oxides.csv gives the refractive index, glass transition temperature and liquidus temperature (K); ICMC_oxides_Abbe.csv gives the Abbe number. Code: the Jupyter notebook MLGLASS.ipynb (Python 3.14.7) trains Random Forest models for the four properties, interprets them with feature importance, SHAP and accumulated local effects, and performs a four-objective NSGA-II inverse design over a charge-neutral composition space restricted to an applicability domain. It reproduces all results, Tables 1 and 2 and Figures 1 to 10 of the article. MLGLASS_py3139.ipynb is an earlier run of the same notebook under Python 3.13.9. The Python scripts compare the Random Forest with XGBoost, LightGBM and ElasticNet on identical cross-validation folds (Table 1) and run the nested hyperparameter searches (Supplementary Table S1). The outputs folder contains the result tables. README.txt gives the file descriptions, run order and software versions. The data are derived from SciGlass (https://github.com/epam/SciGlass) and are distributed under the same Open Database License (ODbL).

Files

Steps to reproduce

1. Data source: the two CSV files were extracted from the SciGlass database (https://github.com/epam/SciGlass). Filtering, merging of repeated compositions and conversion from K to °C are done inside the notebook (Cells A onward), as described in Section 2.1 of the article. 2. Environment for the notebook: Python 3.14.7 with pip install pandas==2.3.3 numpy==2.3.5 scikit-learn==1.7.2 scipy==1.16.3 matplotlib==3.10.6 shap==0.52.0 pymoo==0.6.2 3. Place the two CSV files in the same folder as the notebook and the scripts. 4. Run MLGLASS.ipynb from top to bottom (Cells A to T). Cells F and P take about 6 min each. The notebook writes the result tables and Figures 1 to 10 (TIFF, 600 dpi). 5. Benchmark scripts (Python 3.13.5, pandas 2.2.3, NumPy 2.1.3, scikit-learn 1.6.1, XGBoost 3.4.1, LightGBM 4.7.0, scikit-optimize 0.10.2): run benchmark_fixed_config.py, then paired_tests.py (Table 1). The nested-search scripts (nested_xgboost.py, nested_lightgbm_A.py, nested_lightgbm_B.py, nested_elasticnet.py) are independent and give Supplementary Table S1. 6. A fixed random seed (42) is used throughout; the ten NSGA-II runs use seeds 0 to 9. The NSGA-II results (Cells P to T) can vary slightly with the software build (see README.txt and MLGLASS_py3139.ipynb).

Categories

Materials Science, Artificial Intelligence, Glass, Genetic Algorithm, Machine Learning, Multi-Objective Optimization, Optical Property

Licence