Source code for jarvis.tests.testfiles.ai.test_pkgs
from jarvis.ai.pkgs.sklearn.regression import regression
from jarvis.ai.pkgs.sklearn.classification import classification
from jarvis.ai.pkgs.sklearn.hyper_params import (
classification_regression_params,
)
from jarvis.ai.pkgs.utils import get_ml_data, binary_class_dat
from jarvis.ai.pkgs.lgbm.regression import regression as l_regression
from jarvis.ai.pkgs.lgbm.regression import parameters_dict as l_params
from jarvis.ai.pkgs.lgbm.classification import (
classification as l_classification,
)
from jarvis.ai.descriptors.cfid import feat_names
from lightgbm import LGBMClassifier
import matplotlib.pyplot as plt
import os
plt.switch_backend("agg")
property = "exfoliation_energy"
X, Y, jid = get_ml_data(dataset="cfid_3d", ml_property=property)
X = X[0:100]
Y = Y[0:100]
jid = jid[0:100]
[docs]def test_lgbm_regression():
params = l_params()[property]
names = feat_names()
info = l_regression(
X=X,
Y=Y,
jid=jid,
config=params,
feat_names=names,
plot=True,
save_model=True,
)
assert info["reg_scores"]["mae"] < 200.0
info = l_regression(
X=X,
Y=Y,
jid=jid,
config=params,
preprocess=False,
feat_names=names,
plot=True,
save_model=True,
)
cmd = 'rm my_model* *.png'
os.system(cmd)
[docs]def test_lgbm_classification():
property = "exfoliation_energy"
tol = 100
models = [LGBMClassifier(n_estimators=10, num_leaves=2)]
info = l_classification(
X=X,
Y=Y,
plot=True,
models=models,
preprocess=True,
save_model=True,
tol=tol,
)
cmd = 'rm my_model* *.png'
os.system(cmd)
assert info["LGBMClassifier"]["roc_auc"][0] > 0.0
[docs]def test_hyperparams():
x, y = classification_regression_params()
[docs]def test_sklearn_simple_regression():
info = regression(X, Y, plot=True)
assert info["GradientBoostingRegressor"]["mae"] < 200.0
[docs]def test_sklearn_simple_classification():
X_class, Y_class = binary_class_dat(X=X, Y=Y, tol=100)
info = classification(X=X, Y=Y, tol=100, plot=True)
assert (info["GradientBoostingClassifier"]["roc_auc"][0]) > 0.0