modeva.models.MoReLUDNNRegressor#
- class modeva.models.MoReLUDNNRegressor(name: str = None, hidden_layer_sizes=(40, 40), max_epochs=1000, learning_rate=0.001, batch_size=500, l1_reg=1e-05, val_ratio=0.2, n_epoch_no_change=20, device=None, n_jobs=10, verbose=False, random_state=0)#
A deep neural network regressor using ReLU activation functions.
This model implements a multi-layer neural network for regression tasks, using ReLU activation functions and supporting early stopping, L1 regularization, and batch training.
- Parameters:
name (str, default=None) – Optional identifier for the model instance.
hidden_layer_sizes (tuple of int, default=(40, 40)) – Architecture of the neural network specified as a tuple of integers, where each integer represents the number of neurons in a hidden layer.
max_epochs (int, default=1000) – Maximum number of complete passes through the training dataset.
learning_rate (float, default=0.001) – Step size used for gradient updates during optimization.
batch_size (int, default=500) – Number of training samples used in each gradient update.
l1_reg (float, default=1e-5) – Strength of L1 regularization applied to model weights.
val_ratio (float, default=0.2) – Proportion of training data to use for validation in early stopping.
n_epoch_no_change (int, default=20) – Number of epochs with no improvement after which training will be stopped.
device (string, default=None) – Computing device to use for training (‘cpu’, ‘cuda’, etc.).
n_jobs (int, default=10) – Number of parallel processes for computation (-1 for using all available cores).
verbose (bool, default=False) – If True, prints training progress and statistics.
random_state (int, default=0) – Seed for reproducible random number generation.
- net_#
Trained neural network model.
- Type:
torch.nn.Module
- train_epoch_loss_#
History of training loss values for each epoch.
- Type:
list of float
- validation_epoch_loss_#
History of validation loss values for each epoch.
- Type:
list of float
- calibrate_interval(X, y, alpha=0.1, max_depth: int = 5)#
Fit a conformal prediction model to the given data.
This method computes the model’s prediction interval calibrated to the given data.
If the model is a regressor, splits the data with 50% for fitting lower (alpha / 5) and upper (1 - alpha / 2) gradient boosting trees-based quantile regression to the model’s residual; and 50% for calibration.
If the model is a binary classifiers, it computes the calibration quantile based on predicted probabilities for the positive class.
- Parameters:
X (X : np.ndarray of shape (n_samples, n_features)) – Feature matrix for prediction.
y (array-like of shape (n_samples, )) – Target values.
alpha (float, default=0.1) – Expected miscoverage for the conformal prediction.
max_depth (int, default=5) – Maximum depth of the gradient boosting trees for regression tasks. Only used when task_type is REGRESSION.
- Raises:
ValueError – If the model is neither a regressor nor a classifier.:
- fit(X, y, sample_weight=None)#
Fit ReLuDNN model.
- Parameters:
X (np.ndarray of shape (n_samples, n_features)) – Data features.
y (np.ndarray of shape (n_samples, )) – Target response.
sample_weight (np.ndarray of shape (n_samples, ), default=None) – Sample weight.
- Returns:
self – Fitted Estimator.
- Return type:
object
- get_params(deep=True)#
Get parameters for this estimator.
- Parameters:
deep (bool, default=True) – If True, will return the parameters for this estimator and contained subobjects that are estimators.
- Returns:
params – Parameter names mapped to their values.
- Return type:
dict
- load(file_name: str)#
Load the model into memory from file system.
- Parameters:
file_name (str) – The path and name of the file.
- Return type:
estimator object
- predict(X)#
Model predictions, calling the child class’s ‘_predict’ method.
- Parameters:
X (np.ndarray of shape (n_samples, n_features)) – Feature matrix for prediction.
- Returns:
np.ndarray
- Return type:
The (calibrated) final prediction
- predict_interval(X)#
Predict the prediction interval for the given data based on the conformal prediction model.
It splits the data with 50% for fitting lower (alpha / 5) and upper (1 - alpha / 2) gradient boosting trees-based quantile regression to the model’s residual; and 50% for calibration.
- Parameters:
X (np.ndarray of shape (n_samples, n_features)) – Feature matrix for prediction.
- Returns:
np.ndarray – in the format [n_samples, 2] for regressors or a flattened array for classifiers.
- Return type:
The lower and upper bounds of the prediction intervals for each sample
- Raises:
ValueError – If fit_conformal has not been called to fit the conformal prediction model: before calling this method.
- save(file_name: str)#
Save the model into file system.
- Parameters:
file_name (str) – The path and name of the file.
- set_params(**params)#
Set the parameters of this estimator.
The method works on simple estimators as well as on nested objects (such as
Pipeline
). The latter have parameters of the form<component>__<parameter>
so that it’s possible to update each component of a nested object.- Parameters:
**params (dict) – Estimator parameters.
- Returns:
self – Estimator instance.
- Return type:
estimator instance