Synopsis
This sample script shows how to use a simple ML algorithm to predict heat of formation of cubic perovskites based on DFT data
Motivation
Making stable perovskites with a given electronic structure is of interest for many applications, including water oxidation catalysis. Computational screening provides a tool to direct synthesis and therefore make the manufacturing of catalysts more efficient. However, traditional screening using Density Functional Theory is computationally demanding. Here is a sample code that provides a simple and inexpensive Machine Learning model that uses DFT data from https://cmr.fysik.dtu.dk/cubic_perovskites/cubic_perovskites.html#cubic-perovskites to predict heat of formation for cubic perovskites. The idea is taken from https://www.nature.com/articles/srep19375 . The ML algorithm below gives an error of the heat of formation on the level of 0.15 eV.
Installation
You will need a working Python2 installation. Then follow this link to install the python package manager pip https://pip.pypa.io/en/stable/installing/
Here are the steps to install the modules required by the python script:
pip install numpy scipy matplotlib pandas mendeleev==0.2.8 requests sqlalchemy
pip install --upgrade --user ase
pip install -U scikit-learn
Run the Code
python heat_of_formation_Ridge.py
This will create a csv file that is ready to use by any machine leanring module and an image with the predictions of the Kernel Ridge regressor.
python heat_of_formation_Ridge_06_02.py
If you want to run a newer version (still in development). Here the newly added features helped reduce the MAE to 0.06 eV.
Contributors
Mikhail Askerka (University of Toronto, Yale University, mikhail.askerka@aya.yale.edu)