Magnet_Tc_predictor / README.md
IMFAA's picture
Update README.md
43d4a4a
|
raw
history blame
7.82 kB
metadata
library_name: sklearn
tags:
  - tabular-regression
  - materials property prediction
  - baseline-trainer
widget:
  structuredData:
    Sc:
      - 0
    Ti:
      - 0
    V:
      - 0
    Cr:
      - 0
    Mn:
      - 0
    Fe:
      - 12
    Co:
      - 2
    Ni:
      - 0
    Cu:
      - 0
    Al:
      - 0
    Si:
      - 0
    Ga:
      - 0
    Ge:
      - 0
    Be:
      - 0
    Nb:
      - 0
    Mo:
      - 0
    Re:
      - 0
    Ru:
      - 0
    La:
      - 0
    Ce:
      - 0
    Pr:
      - 1.9
    Nd:
      - 0
    Sm:
      - 0
    Eu:
      - 0
    Gd:
      - 0
    Tb:
      - 0.1
    Dy:
      - 0
    Ho:
      - 0
    Er:
      - 0
    Tm:
      - 0
    Yb:
      - 0
    Lu:
      - 0
    Th:
      - 0
    'Y':
      - 0
    Zr:
      - 0
    B:
      - 0
    C:
      - 0

Model Description

The magnet Curie temperature (Tc [K]) predictor model has been trained using a supervised learning approach on a specific set of magnet classes having 14:2:1 phases. The dataset to train the Tc prediction model is a distinct literature source. Further, the Tc values for various 14:2:1 magnet phases at room temperature are considered for dataset creation.

It predicts the Tc value using the chemical composition as a feature.

E.g: To predict the Tc value Nd2Fe14B1 magnet composition, the features are Nd=2, Fe=14, and B=1.

Application & Limitations

The trained model is valid for 14:2:1 phases only, which are stoichiometric compositions and the predicted Tc value is in Kelvin and at room temperature.

Model Plot

VotingRegressor(estimators=[('ET', ExtraTreesRegressor()),
                        ('XGB',
                         XGBRegressor(alpha=0.5, base_score=0.5,
                                      booster='gbtree', colsample_bylevel=1,
                                      colsample_bynode=1,
                                      colsample_bytree=0.4,
                                      enable_categorical=False, gamma=0,
                                      gpu_id=-1, importance_type=None,
                                      interaction_constraints='',
                                      learning_rate=0.2, max_delta_step=0,
                                      max_depth=2, min_child_weight=1,
                                      missing=nan,
                                      mo...
                                      n_estimators=1000, n_jobs=8,
                                      num_parallel_tree=1, predictor='auto',
                                      random_state=0, reg_alpha=0.5,
                                      reg_lambda=1, scale_pos_weight=1,
                                      subsample=1, tree_method='exact',
                                      validate_parameters=1,
                                      verbosity=None)),
                        ('RF', RandomForestRegressor(max_depth=100)),
                        ('AB',
                         AdaBoostRegressor(base_estimator=RandomForestRegressor(max_depth=50,
                                                                                n_estimators=50),
                                           learning_rate=0.001))])
                                           

How to use the trained model for inference

import json
from joblib
import pandas as pd

Tc_predictor = load('Magnet_Tc_predictor.joblib') # trained model
config = json.load(open('config.json')) # config file
features = config['features'] # feature extraction

#data = pd.read_excel("data.xlsx") # read test file with new compositions 
data = data[features]
#data.columns = ["feat_" + str(col) for col in data.columns]

Predicted_value = Tc_predictor.predict(data) # predict Tc values
print("Predicted Tc value is: {0:.2f}'.format(predictions)")