modeva.models.MoReLUDNNClassifier#
- class modeva.models.MoReLUDNNClassifier(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 classifier using ReLU activation functions.
This model implements a multi-layer neural network for binary classification 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)#
Fit a conformal prediction model to the given data.
This method computes the model’s prediction interval calibrated to the given data.
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.
- Raises:
ValueError – If the model is neither a regressor nor a classifier.:
- calibrate_proba(X, y, sample_weight=None, method='sigmoid')#
Fit the calibration method on the model’s predictions.
- Parameters:
X (np.ndarray of shape (n_samples, n_features)) – Feature matrix for prediction.
y (np.ndarray of shape (n_samples, )) – Ground truth labels.
sample_weight (array-like, shape (n_samples,), default=None) – Sample weights.
method ({'sigmoid', 'isotonic'}, default='sigmoid') –
The calibration method.
’sigmoid’: Platt’s method, i.e., fit a logistic regression on predicted probabilities and y
’isotonic’: Fit an isotonic regression on predicted probabilities and y.
- Returns:
self
- Return type:
Calibrated estimator
- decision_function(X, calibration: bool = True)#
Computes the decision function for the given input data.
- Parameters:
X (np.ndarray of shape (n_samples, n_features)) – Feature matrix for prediction.
calibration (bool, default=True) – If True, will use calibrated probability if calibration is done. Otherwise, will use raw probability.
- Returns:
logit_prediction – Array of (calibrated) logit predictions.
- Return type:
array, shape (n_samples,) or (n_samples, n_classes)
- 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, calibration: bool = True)#
Model predictions, calling the child class’s ‘_predict’ method.
- Parameters:
X (np.ndarray of shape (n_samples, n_features)) – Feature matrix for prediction.
calibration (bool, default=True) – If True, will use calibrated probability if calibration is done. Otherwise, will use raw probability.
- Returns:
np.ndarray
- Return type:
The (calibrated) final prediction
- predict_interval(X)#
Predict the prediction set for the given data based on the conformal prediction model.
This method computes the model prediction interval (regression) or prediction sets (classification) using conformal prediction.
- 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.
- predict_proba(X, calibration: bool = True)#
Predict (calibrated) probabilities for X.
- Parameters:
X (np.ndarray of shape (n_samples, n_features)) – Feature matrix for prediction.
calibration (bool, default=True) – If True, will return calibrated probability if calibration is done. Otherwise, will return raw probability.
- Returns:
np.ndarray
- Return type:
The (calibrated) predicted probabilities
- 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