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.0258
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.0238
Epoch 13: Train loss 0.0233, Validation loss 0.0225
Epoch 14: Train loss 0.0221, Validation loss 0.0218
Epoch 15: Train loss 0.0211, Validation loss 0.0206
Epoch 16: Train loss 0.0201, Validation loss 0.0197
Epoch 17: Train loss 0.0194, Validation loss 0.0191
Epoch 18: Train loss 0.0189, Validation loss 0.0185
Epoch 19: Train loss 0.0184, Validation loss 0.0181
Epoch 20: Train loss 0.0180, Validation loss 0.0183
Epoch 21: Train loss 0.0177, Validation loss 0.0182
Epoch 22: Train loss 0.0175, Validation loss 0.0173
Epoch 23: Train loss 0.0172, Validation loss 0.0171
Epoch 24: Train loss 0.0170, Validation loss 0.0169
Epoch 25: Train loss 0.0168, Validation loss 0.0168
Epoch 26: Train loss 0.0165, Validation loss 0.0166
Epoch 27: Train loss 0.0166, Validation loss 0.0164
Epoch 28: Train loss 0.0163, Validation loss 0.0165
Epoch 29: Train loss 0.0161, Validation loss 0.0162
Epoch 30: Train loss 0.0160, Validation loss 0.0162
Epoch 31: Train loss 0.0158, Validation loss 0.0161
Epoch 32: Train loss 0.0157, Validation loss 0.0158
Epoch 33: Train loss 0.0155, Validation loss 0.0157
Epoch 34: Train loss 0.0154, Validation loss 0.0156
Epoch 35: Train loss 0.0152, Validation loss 0.0154
Epoch 36: Train loss 0.0150, Validation loss 0.0155
Epoch 37: Train loss 0.0150, Validation loss 0.0154
Epoch 38: Train loss 0.0148, Validation loss 0.0151
Epoch 39: Train loss 0.0146, Validation loss 0.0151
Epoch 40: Train loss 0.0143, Validation loss 0.0145
Epoch 41: Train loss 0.0140, Validation loss 0.0143
Epoch 42: Train loss 0.0137, Validation loss 0.0142
Epoch 43: Train loss 0.0134, Validation loss 0.0135
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.0120
Epoch 47: Train loss 0.0115, Validation loss 0.0115
Epoch 48: Train loss 0.0110, Validation loss 0.0110
Epoch 49: Train loss 0.0105, Validation loss 0.0105
Epoch 50: Train loss 0.0100, Validation loss 0.0099
Epoch 51: Train loss 0.0094, Validation loss 0.0095
Epoch 52: Train loss 0.0090, Validation loss 0.0090
Epoch 53: Train loss 0.0085, Validation loss 0.0088
Epoch 54: Train loss 0.0080, Validation loss 0.0081
Epoch 55: Train loss 0.0076, Validation loss 0.0079
Epoch 56: Train loss 0.0072, Validation loss 0.0075
Epoch 57: Train loss 0.0069, Validation loss 0.0070
Epoch 58: Train loss 0.0066, Validation loss 0.0069
Epoch 59: Train loss 0.0063, Validation loss 0.0065
Epoch 60: Train loss 0.0060, Validation loss 0.0062
Epoch 61: Train loss 0.0059, Validation loss 0.0061
Epoch 62: Train loss 0.0057, Validation loss 0.0061
Epoch 63: Train loss 0.0056, Validation loss 0.0058
Epoch 64: Train loss 0.0054, Validation loss 0.0058
Epoch 65: Train loss 0.0053, 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.0054
Epoch 69: Train loss 0.0051, Validation loss 0.0054
Epoch 70: Train loss 0.0050, Validation loss 0.0052
Epoch 71: Train loss 0.0049, Validation loss 0.0053
Epoch 72: Train loss 0.0049, Validation loss 0.0052
Epoch 73: Train loss 0.0048, Validation loss 0.0051
Epoch 74: Train loss 0.0047, Validation loss 0.0051
Epoch 75: Train loss 0.0047, Validation loss 0.0052
Epoch 76: Train loss 0.0047, Validation loss 0.0052
Epoch 77: Train loss 0.0047, Validation loss 0.0050
Epoch 78: Train loss 0.0046, 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.0048
Epoch 83: Train loss 0.0045, Validation loss 0.0050
Epoch 84: Train loss 0.0045, Validation loss 0.0048
Epoch 85: Train loss 0.0045, Validation loss 0.0049
Epoch 86: Train loss 0.0044, Validation loss 0.0053
Epoch 87: Train loss 0.0047, Validation loss 0.0052
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.0042, Validation loss 0.0046
Epoch 95: Train loss 0.0042, Validation loss 0.0046
Epoch 96: Train loss 0.0041, Validation loss 0.0045
Epoch 97: Train loss 0.0041, Validation loss 0.0046
Epoch 98: Train loss 0.0041, 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()