krkaufma / ML-EFA

A CLI for predicting entropy forming ability (EFA)
https://www.nature.com/articles/s41524-020-0317-6
4 stars 3 forks source link

Machine learning for entropy forming ability (EFA)

A lightweight training and evaluation framework for reliable determination of synthesizability (EFA) of high entropy materials.

See the associated publication for more information about EFA: https://www.nature.com/articles/s41524-020-0317-6

Setup

This project targets a CPU-enabled Linux workstation. Additional work may be required for testing on other operating systems.

We target Python 3.6+.

  1. Create/Activate a virtual environment (via anaconda, virtualenv, or pyenv) Recommended: Anaconda
  2. pip install -e .

How to Run Experiments

Train a model

This project includes a cli.py script for training a Random Forest Regressor with the following assumptions:

The cli.py script returns several artifacts including the fit model, a table of feature importances, the hyperparamter search results and optimal hyperparameters found, and a transform mask (if feature selection is performed).

Predicting EFA for new materials

This project includes a predict.py script for predicting the EFA of new data. The following assumptions are made:

The predict.py script returns a .csv file containing the material name and the predicted EFA.

Visualizing the decision trees

This project includes a predict.py script for exporting all of the decision trees in a random forest as png files.

This script assumes:

Data provided in this repo: