Note
Go to the end to download the full example code.
MoReLUDNN Regression
Installation
# To install the required package, use the following command:
# !pip install modeva
Authentication
# To get authentication, use the following command: (To get full access please replace the token to your own token)
# from modeva.utils.authenticate import authenticate
# authenticate(auth_code='eaaa4301-b140-484c-8e93-f9f633c8bacb')
Import required modules
from modeva import DataSet
from modeva import TestSuite
from modeva.models import MoReLUDNNRegressor
Load and prepare dataset
ds = DataSet()
ds.load(name="BikeSharing")
ds.set_random_split()
ds.set_target("cnt")
ds.scale_numerical(features=("cnt",), method="log1p")
ds.scale_numerical(method="minmax")
ds.preprocess()
Train model
model = MoReLUDNNRegressor(max_epochs=100, verbose=True)
model.fit(ds.train_x, ds.train_y)
#### MoReLUDNN Training ####
Epoch 0: Train loss 0.2111, Validation loss 0.0746
Epoch 1: Train loss 0.0530, Validation loss 0.0471
Epoch 2: Train loss 0.0414, Validation loss 0.0372
Epoch 3: Train loss 0.0343, Validation loss 0.0312
Epoch 4: Train loss 0.0300, Validation loss 0.0284
Epoch 5: Train loss 0.0278, Validation loss 0.0271
Epoch 6: Train loss 0.0268, Validation loss 0.0265
Epoch 7: Train loss 0.0263, Validation loss 0.0263
Epoch 8: Train loss 0.0261, Validation loss 0.0261
Epoch 9: Train loss 0.0258, Validation loss 0.0257
Epoch 10: Train loss 0.0255, Validation loss 0.0255
Epoch 11: Train loss 0.0252, Validation loss 0.0248
Epoch 12: Train loss 0.0244, Validation loss 0.0239
Epoch 13: Train loss 0.0234, Validation loss 0.0226
Epoch 14: Train loss 0.0221, Validation loss 0.0219
Epoch 15: Train loss 0.0212, Validation loss 0.0206
Epoch 16: Train loss 0.0202, Validation loss 0.0198
Epoch 17: Train loss 0.0195, Validation loss 0.0192
Epoch 18: Train loss 0.0190, Validation loss 0.0186
Epoch 19: Train loss 0.0185, Validation loss 0.0182
Epoch 20: Train loss 0.0180, Validation loss 0.0183
Epoch 21: Train loss 0.0178, Validation loss 0.0183
Epoch 22: Train loss 0.0176, Validation loss 0.0173
Epoch 23: Train loss 0.0172, Validation loss 0.0172
Epoch 24: Train loss 0.0171, Validation loss 0.0170
Epoch 25: Train loss 0.0168, Validation loss 0.0168
Epoch 26: Train loss 0.0166, Validation loss 0.0167
Epoch 27: Train loss 0.0166, Validation loss 0.0165
Epoch 28: Train loss 0.0164, Validation loss 0.0166
Epoch 29: Train loss 0.0162, Validation loss 0.0162
Epoch 30: Train loss 0.0161, Validation loss 0.0162
Epoch 31: Train loss 0.0159, Validation loss 0.0162
Epoch 32: Train loss 0.0158, Validation loss 0.0159
Epoch 33: Train loss 0.0156, Validation loss 0.0158
Epoch 34: Train loss 0.0155, Validation loss 0.0156
Epoch 35: Train loss 0.0153, Validation loss 0.0155
Epoch 36: Train loss 0.0151, Validation loss 0.0156
Epoch 37: Train loss 0.0151, Validation loss 0.0154
Epoch 38: Train loss 0.0149, Validation loss 0.0152
Epoch 39: Train loss 0.0147, Validation loss 0.0153
Epoch 40: Train loss 0.0144, Validation loss 0.0146
Epoch 41: Train loss 0.0141, Validation loss 0.0142
Epoch 42: Train loss 0.0136, Validation loss 0.0141
Epoch 43: Train loss 0.0133, Validation loss 0.0134
Epoch 44: Train loss 0.0128, Validation loss 0.0129
Epoch 45: Train loss 0.0124, Validation loss 0.0125
Epoch 46: Train loss 0.0120, Validation loss 0.0121
Epoch 47: Train loss 0.0116, Validation loss 0.0117
Epoch 48: Train loss 0.0112, Validation loss 0.0111
Epoch 49: Train loss 0.0107, Validation loss 0.0107
Epoch 50: Train loss 0.0102, Validation loss 0.0102
Epoch 51: Train loss 0.0097, Validation loss 0.0098
Epoch 52: Train loss 0.0092, Validation loss 0.0093
Epoch 53: Train loss 0.0087, Validation loss 0.0091
Epoch 54: Train loss 0.0083, Validation loss 0.0084
Epoch 55: Train loss 0.0078, Validation loss 0.0081
Epoch 56: Train loss 0.0074, Validation loss 0.0077
Epoch 57: Train loss 0.0071, Validation loss 0.0072
Epoch 58: Train loss 0.0068, Validation loss 0.0070
Epoch 59: Train loss 0.0064, Validation loss 0.0066
Epoch 60: Train loss 0.0062, Validation loss 0.0063
Epoch 61: Train loss 0.0060, Validation loss 0.0061
Epoch 62: Train loss 0.0058, Validation loss 0.0062
Epoch 63: Train loss 0.0056, Validation loss 0.0059
Epoch 64: Train loss 0.0055, Validation loss 0.0058
Epoch 65: Train loss 0.0054, Validation loss 0.0056
Epoch 66: Train loss 0.0053, Validation loss 0.0056
Epoch 67: Train loss 0.0052, Validation loss 0.0055
Epoch 68: Train loss 0.0051, Validation loss 0.0055
Epoch 69: Train loss 0.0051, Validation loss 0.0054
Epoch 70: Train loss 0.0050, Validation loss 0.0053
Epoch 71: Train loss 0.0050, Validation loss 0.0054
Epoch 72: Train loss 0.0050, Validation loss 0.0052
Epoch 73: Train loss 0.0048, Validation loss 0.0052
Epoch 74: Train loss 0.0047, Validation loss 0.0051
Epoch 75: Train loss 0.0047, Validation loss 0.0053
Epoch 76: Train loss 0.0047, Validation loss 0.0052
Epoch 77: Train loss 0.0047, Validation loss 0.0051
Epoch 78: Train loss 0.0047, Validation loss 0.0050
Epoch 79: Train loss 0.0047, Validation loss 0.0051
Epoch 80: Train loss 0.0046, Validation loss 0.0051
Epoch 81: Train loss 0.0046, Validation loss 0.0049
Epoch 82: Train loss 0.0045, Validation loss 0.0049
Epoch 83: Train loss 0.0045, Validation loss 0.0049
Epoch 84: Train loss 0.0044, Validation loss 0.0048
Epoch 85: Train loss 0.0044, Validation loss 0.0050
Epoch 86: Train loss 0.0044, Validation loss 0.0054
Epoch 87: Train loss 0.0047, Validation loss 0.0053
Epoch 88: Train loss 0.0045, Validation loss 0.0048
Epoch 89: Train loss 0.0045, Validation loss 0.0047
Epoch 90: Train loss 0.0043, Validation loss 0.0048
Epoch 91: Train loss 0.0045, Validation loss 0.0055
Epoch 92: Train loss 0.0044, Validation loss 0.0047
Epoch 93: Train loss 0.0042, Validation loss 0.0047
Epoch 94: Train loss 0.0041, Validation loss 0.0046
Epoch 95: Train loss 0.0041, Validation loss 0.0046
Epoch 96: Train loss 0.0041, Validation loss 0.0045
Epoch 97: Train loss 0.0040, Validation loss 0.0046
Epoch 98: Train loss 0.0040, Validation loss 0.0046
Epoch 99: Train loss 0.0041, Validation loss 0.0045
Training is terminated as max_epoch is reached.
Basic accuracy analysis
ts = TestSuite(ds, model)
results = ts.diagnose_accuracy_table()
results.table
# Global feature importance
# ----------------------------------------------------------
results = ts.interpret_fi()
results.plot()
LLM summary table
results = ts.interpret_llm_summary(dataset="train")
results.table
LLM parallel coordinate plot
results = ts.interpret_llm_pc(dataset="train")
results.plot()
LLM profile plot against a feature
results = ts.interpret_llm_profile(feature="hr", dataset="train")
results.plot()
Local feature importance analysis
results = ts.interpret_local_linear_fi(dataset="train", sample_index=15, centered=True)
results.plot()