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.0165
Epoch 28: Train loss 0.0163, Validation loss 0.0165
Epoch 29: Train loss 0.0162, Validation loss 0.0162
Epoch 30: Train loss 0.0160, Validation loss 0.0162
Epoch 31: Train loss 0.0159, Validation loss 0.0161
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.0154, Validation loss 0.0157
Epoch 35: Train loss 0.0153, Validation loss 0.0155
Epoch 36: Train loss 0.0151, Validation loss 0.0157
Epoch 37: Train loss 0.0151, Validation loss 0.0155
Epoch 38: Train loss 0.0150, Validation loss 0.0153
Epoch 39: Train loss 0.0148, Validation loss 0.0154
Epoch 40: Train loss 0.0145, Validation loss 0.0148
Epoch 41: Train loss 0.0143, Validation loss 0.0145
Epoch 42: Train loss 0.0139, Validation loss 0.0144
Epoch 43: Train loss 0.0136, Validation loss 0.0137
Epoch 44: Train loss 0.0130, Validation loss 0.0131
Epoch 45: Train loss 0.0126, Validation loss 0.0127
Epoch 46: Train loss 0.0122, Validation loss 0.0123
Epoch 47: Train loss 0.0118, Validation loss 0.0119
Epoch 48: Train loss 0.0114, Validation loss 0.0113
Epoch 49: Train loss 0.0109, Validation loss 0.0109
Epoch 50: Train loss 0.0104, Validation loss 0.0104
Epoch 51: Train loss 0.0098, Validation loss 0.0100
Epoch 52: Train loss 0.0094, Validation loss 0.0095
Epoch 53: Train loss 0.0089, Validation loss 0.0092
Epoch 54: Train loss 0.0085, Validation loss 0.0086
Epoch 55: Train loss 0.0080, Validation loss 0.0084
Epoch 56: Train loss 0.0076, Validation loss 0.0079
Epoch 57: Train loss 0.0073, Validation loss 0.0073
Epoch 58: Train loss 0.0069, Validation loss 0.0071
Epoch 59: Train loss 0.0065, Validation loss 0.0067
Epoch 60: Train loss 0.0062, Validation loss 0.0064
Epoch 61: Train loss 0.0060, Validation loss 0.0062
Epoch 62: Train loss 0.0059, Validation loss 0.0062
Epoch 63: Train loss 0.0057, Validation loss 0.0059
Epoch 64: Train loss 0.0055, Validation loss 0.0059
Epoch 65: Train loss 0.0054, Validation loss 0.0057
Epoch 66: Train loss 0.0053, Validation loss 0.0056
Epoch 67: Train loss 0.0052, Validation loss 0.0056
Epoch 68: Train loss 0.0052, 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.0055
Epoch 72: Train loss 0.0050, Validation loss 0.0052
Epoch 73: Train loss 0.0049, Validation loss 0.0052
Epoch 74: Train loss 0.0047, Validation loss 0.0052
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.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.0053
Epoch 88: Train loss 0.0045, Validation loss 0.0048
Epoch 89: Train loss 0.0045, Validation loss 0.0048
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()