Giter Site home page Giter Site logo

cubic-perovskite-workfunction's Introduction

Cubic-Perovskite-WorkFunction

This repository contains the dataset perovskites' work functions using first principles and the electronic descriptors to perform data-driven analysis. This work aims to identify the electronic factors and how they control perovskite oxides' work functions.

The following paper describes the details of the analysis:

Data-driven analysis of the electronic factors controlling the work functions of perovskite oxides

Table of Contents

Getting Started

Prerequisites

biokit is used for plotting correlation matrix, pdpbox is used to perform partial dependence analysis (PDP). The prerequisites can also be installed using pip.

pip install -r requirements.txt

Usage

The analysis of the perovskites' work functions contain three main steps, the help messages can be find using:

python correlated_matrix.py -h
python rfecv.py -h
python model_analysis.py -h

The dataset contains the original 38 electronic features and the first principles-derived work functions is in the data folder, the definition of the features can be found in our manuscript: Data-driven analysis of the electronic factors controlling the work functions of perovskite oxides

  1. remove correlated features, default by enumeration method and dumping the plot:

    python correlated_matrix.py -e -p

    This step creates new dataset perovskite_wf_data_uncorr.csv in data directory.

  2. recursive feature elimination with cross-validations, hyperparameters tuned at each step, for example:

    python rfecv.py --term A --rfecv

    This perform the recursive feature elimination for A-termination of perovskites based on random forest regressor, the hyperparameter is selected at each step. The optimized features and transformed dataset are saved in rfecv_results and data directory, respectively.

  3. Analysis of the model's performance, with partial dependence analysis.

    python model_analysis.py --term A --pdp_1d --pdp_2d

    --pdp_1d and --pdp_2d flag will perform the partial dependence analysis, available feature names will be displayed.

rfecv and pdp results can be plotted using plotter.py in plot_tools directory:

python plotter.py --rfecv --pdp

the obtained figures are stored in rfecv_results and results directory, respectively.

The trained models for AO and BO2-terminated interfaces are stored in model_checkpoints.

cubic-perovskite-workfunction's People

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.