Open In Colab

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.
MoReLUDNNRegressor(device='cpu', max_epochs=100, name='MoReLUDNNRegressor',
                   verbose=True)
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.


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
Count Response Mean Response Std Local MSE Global MSE
0 264.0 0.8620 0.0793 0.0032 0.0650
1 165.0 0.2938 0.1280 0.0055 1.9918
2 163.0 0.7931 0.0804 0.0035 0.0652
3 146.0 0.7567 0.0941 0.0012 0.5341
4 136.0 0.8414 0.0742 0.0026 0.0650
... ... ... ... ... ...
4010 1.0 0.7267 NaN 0.0014 0.1868
4011 1.0 0.6501 NaN 0.0094 0.2316
4012 1.0 0.2023 NaN 0.0030 2.2689
4013 1.0 0.7193 NaN 0.0016 0.0834
4014 1.0 0.6652 NaN 0.0087 0.2236

4015 rows × 5 columns



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()


Extract the last hidden layer outputs

model.predict_last_hidden_layer(ds.train_x)
array([[0.        , 0.17157897, 0.        , ..., 0.18076974, 0.        ,
        0.        ],
       [0.        , 0.17514187, 0.        , ..., 0.12633413, 0.        ,
        0.        ],
       [0.        , 0.18021008, 0.        , ..., 0.07530794, 0.        ,
        0.        ],
       ...,
       [0.        , 0.38972834, 0.        , ..., 0.        , 0.        ,
        0.5809197 ],
       [0.        , 0.39720047, 0.        , ..., 0.        , 0.        ,
        0.6366427 ],
       [0.        , 0.36461934, 0.        , ..., 0.        , 0.        ,
        0.66803396]], dtype=float32)

Total running time of the script: (0 minutes 8.727 seconds)

Gallery generated by Sphinx-Gallery