Estimators
Estimator classes provide an sklearn
-like API to fit, predict and update models with the accordingly named methods. ondil
provides a variety of estimators for different tasks, including linear regression, regularized regression, and distributional regression. These estimators are designed to handle online learning scenarios, allowing for efficient updates as new data arrives. The following sections provide an overview of the available estimators in ondil
. We first cover the linear models, followed by distributional regression models.
Linear Models
ondil.estimators.OnlineLinearModel
Bases: OndilEstimatorMixin
, RegressorMixin
, BaseEstimator
Simple Online Linear Regression for the expected value.
__init__
__init__(
forget: float = 0.0,
scale_inputs: bool | ndarray = True,
fit_intercept: bool = True,
regularize_intercept: bool = False,
method: EstimationMethod | str = "ols",
ic: Literal["aic", "bic", "hqc", "max"] = "bic",
)
The basic linear model for many different estimation techniques.
Parameters:
-
forget
(float
, default:0.0
) –Exponential discounting of old observations. Defaults to 0.
-
scale_inputs
(bool
, default:True
) –Whether to scale the \(X\) matrix. Defaults to True.
-
fit_intercept
(bool
, default:True
) –Whether to add an intercept in the estimation. Defaults to True.
-
regularize_intercept
(bool
, default:False
) –Whether to regularize the intercept. Defaults to False.
-
method
(EstimationMethod | str
, default:'ols'
) –The estimation method. Can be a string or
EstimationMethod
class. Defaults to "ols". -
ic
(Literal['aic', 'bic', 'hqc', 'max']
, default:'bic'
) –The information criteria for model selection. Defaults to "bic".
Raises: ValueError: Will raise if you try to regularize the intercept, but not fit it.
fit
Initial fit of the online regression model.
Parameters:
-
X
(ndarray
) –The design matrix \(X\).
-
y
(ndarray
) –The response vector \(y\).
-
sample_weight
(Optional[ndarray]
, default:None
) –The sample weights. Defaults to None.
update
Update the regression model.
Parameters:
-
X
(ndarray
) –The new row of the design matrix \(X\). Needs to be of shape 1 x n_features or n_obs_new x n_features.
-
y
(ndarray
) –The new observation of \(y\). Needs to be the same shape as
X
or a single observation. -
sample_weight
(Optional[ndarray]
, default:None
) –The weight for the new observations.
None
implies all observations have weight 1. Defaults to None.
score
Calculate the coefficient of determination \(R^2\).
Parameters:
-
X
(ndarray
) –The design matrix \(X\).
-
y
(ndarray
) –The response vector \(y\).
Returns:
-
float
(float
) –The coefficient of determination \(R^2\).
predict
Predict using the optimal IC selection.
Parameters:
-
X
(ndarray
) –The design matrix \(X\).
Returns:
-
ndarray
–np.ndarray: The predictions for the optimal IC.
ondil.estimators.OnlineLasso
Bases: OnlineLinearModel
__init__
__init__(
forget: float = 0,
scale_inputs: bool = True,
fit_intercept: bool = True,
regularize_intercept: bool = False,
ic: Literal["aic", "bic", "hqc", "max"] = "bic",
early_stop: int = 0,
beta_lower_bound: ndarray | None = None,
beta_upper_bound: ndarray | None = None,
lambda_n: int = 100,
lambda_eps: float = 0.0001,
start_value: str = "previous_fit",
tolerance: float = 0.0001,
max_iterations: int = 1000,
selection: Literal["cyclic", "random"] = "cyclic",
)
Online LASSO estimator class.
This class initializes the online linear regression fitted using LASSO. The estimator object provides three main methods,
estimator.fit(X, y)
, estimator.update(X, y)
and estimator.predict(X)
.
Parameters:
-
forget
(float
, default:0
) –Exponential discounting of old observations. Defaults to 0.
-
scale_inputs
(bool
, default:True
) –Whether to scale the \(X\) matrix. Defaults to True.
-
fit_intercept
(bool
, default:True
) –Whether to add an intercept in the estimation. Defaults to True.
-
regularize_intercept
(bool
, default:False
) –Whether to regularize the intercept. Defaults to False.
-
ic
(Literal['aic', 'bic', 'hqc', 'max']
, default:'bic'
) –The information criteria for model selection. Defaults to "bic".
-
early_stop
(int
, default:0
) –Early stopping criterion. If we reach
early_stop
non-zero coefficients, we stop. Defaults to 0 (no early stopping). -
beta_lower_bound
(ndarray | None
, default:None
) –Lower bounds for beta. Keep in mind the size of X and whether you want to fit an intercept. None corresponds to unconstrained estimation.Defaults to None.
-
beta_upper_bound
(ndarray | None
, default:None
) –Lower bounds for beta. Keep in mind the size of X and whether you want to fit an intercept. None corresponds to unconstrained estimation. Defaults to None.
-
lambda_n
(int
, default:100
) –Length of the regularization path. Defaults to 100.
-
lambda_eps
(float
, default:0.0001
) –The largest regularization is determined automatically such that the solution is fully regularized. The smallest regularization is taken as \(\varepsilon \lambda^\max\) and we will use an exponential grid. Defaults to 1e-4.
-
start_value
(str
, default:'previous_fit'
) –Whether to choose the previous fit or the previous regularization as start value. Defaults to 100.
-
tolerance
(float
, default:0.0001
) –Tolerance for breaking the CD. Defaults to 1e-4.
-
max_iterations
(int
, default:1000
) –Max number of CD iterations. Defaults to 1000.
-
selection
(Literal['cyclic', 'random']
, default:'cyclic'
) –Whether to cycle through all coordinates in order or random. For large problems, random might increase convergence. Defaults to 100.
Online Distributional Regression
ondil.estimators.OnlineDistributionalRegression
Bases: OndilEstimatorMixin
, RegressorMixin
, BaseEstimator
The online/incremental GAMLSS class.
__init__
__init__(
distribution: Distribution = Normal(),
equation: Dict[int, Union[str, ndarray, list]] = None,
forget: float | Dict[int, float] = 0.0,
method: Union[
str,
EstimationMethod,
Dict[int, str],
Dict[int, EstimationMethod],
] = "ols",
scale_inputs: bool | ndarray = True,
fit_intercept: Union[bool, Dict[int, bool]] = True,
regularize_intercept: Union[
bool, Dict[int, bool]
] = False,
ic: Union[str, Dict] = "aic",
model_selection: Literal[
"local_rss", "global_ll"
] = "local_rss",
prefit_initial: int = 0,
prefit_update: int = 0,
step_size: float | Dict[int, float] = 1.0,
verbose: int = 0,
debug: bool = False,
param_order: ndarray | None = None,
cautious_updates: bool = False,
cond_start_val: bool = False,
max_it_outer: int = 30,
max_it_inner: int = 30,
abs_tol_outer: float = 0.001,
abs_tol_inner: float = 0.001,
rel_tol_outer: float = 1e-05,
rel_tol_inner: float = 1e-05,
min_it_outer: int = 1,
) -> OnlineDistributionalRegression
The OnlineDistributionalRegression()
provides the fit, update and predict methods for linear parametric GAMLSS models.
For a response variable \(Y\) which is distributed according to the distribution \(\mathcal{F}(\theta)\) with the distribution parameters \(\theta\), we model:
where \(g_k(\cdot)\) is a link function, which ensures that the predicted distribution parameters are in a sensible range (we don't want, e.g. negative standard deviations), and \(\eta_k\) is the predictor (on the space of the link function). The model is fitted using iterative re-weighted least squares (IRLS).
Tips and Tricks
If you're facing issues with non-convergence and/or matrix inversion problems, please enable the debug
mode and increase the
logging level by increasing verbose
.
In debug mode, the estimator will save the weights, working vectors, derivatives each iteration in a
according dictionary, i.e. self._debug_weights.
The keys are composed of a tuple of ints of (parameter, outer_iteration, inner_iteration)
.
Very small and/or very large weights (implicitly second derivatives) can be a sign that either start values are not chosen appropriately or
that the distributional assumption does not fit the data well.
Debug Mode
Please don't use debug more for production models since it saves the X
matrix and its scaled counterpart, so you will get large
estimator objects.
Conditional start values cond_start_val=False
The cond_start_val
parameter is considered experimental and may not work as expected.
Cautious updates cautious_updates=True
The cautious_updates
parameter is considered experimental and may not work as expected.
Parameters:
-
distribution
(Distribution
, default:Normal()
) –The parametric distribution to use for modeling the response variable.
-
equation
(Dict[int, Union[str, ndarray, list]]
, default:None
) –The modeling equation for each distribution parameter. The dictionary should map parameter indices to either the strings
'all'
,'intercept'
, a numpy array of column indices, or a list of column names. Defaults to None, which uses all covariates for the first parameter and intercepts for others. -
forget
(float | Dict[int, float]
, default:0.0
) –The forget factor for exponential weighting of past observations. Can be a single float for all parameters or a dictionary mapping parameter indices to floats. Defaults to 0.0.
-
method
(str | EstimationMethod | Dict[int, str] | Dict[int, EstimationMethod]
, default:'ols'
) –The estimation method for each parameter. Can be a string, EstimationMethod, or a dictionary mapping parameter indices. Defaults to "ols".
-
scale_inputs
(bool | ndarray
, default:True
) –Whether to scale the input features. Can be a boolean or a numpy array specifying scaling per feature. Defaults to True.
-
fit_intercept
(bool | Dict[int, bool]
, default:True
) –Whether to fit an intercept for each parameter. Can be a boolean or a dictionary mapping parameter indices. Defaults to True.
-
regularize_intercept
(bool | Dict[int, bool]
, default:False
) –Whether to regularize the intercept for each parameter. Can be a boolean or a dictionary mapping parameter indices. Defaults to False.
-
ic
(str | Dict
, default:'aic'
) –Information criterion for model selection (e.g., "aic", "bic"). Can be a string or a dictionary mapping parameter indices. Defaults to "aic".
-
model_selection
(Literal['local_rss', 'global_ll']
, default:'local_rss'
) –Model selection strategy. "local_rss" selects based on local residual sum of squares, "global_ll" uses global log-likelihood. Defaults to "local_rss".
-
prefit_initial
(int
, default:0
) –Number of initial outer iterations with only one inner iteration (for stabilization). Defaults to 0.
-
prefit_update
(int
, default:0
) –Number of initial outer iterations with only one inner iteration during updates. Defaults to 0.
-
step_size
(float | Dict[int, float]
, default:1.0
) –Step size for parameter updates. Can be a float or a dictionary mapping parameter indices. Defaults to 1.0.
-
verbose
(int
, default:0
) –Verbosity level for logging. 0 = silent, 1 = high-level, 2 = per-parameter, 3 = per-iteration. Defaults to 0.
-
debug
(bool
, default:False
) –Enable debug mode. Debug mode will save additional data to the estimator object. Currently, we save
* self._debug_X_dict * self._debug_X_scaled * self._debug_weights * self._debug_working_vectors * self._debug_dl1dlp1 * self._debug_dl2dlp2 * self._debug_eta * self._debug_fv * self._debug_coef * self._debug_coef_path
to the the estimator. Debug mode works in batch and online settings. Note that debug mode is not recommended for production use. Defaults to False.
-
param_order
(ndarray | None
, default:None
) –Order in which to fit the distribution parameters. Defaults to None (natural order).
-
cautious_updates
(bool
, default:False
) –If True, use smaller step sizes and more iterations when new data are outliers. Defaults to False.
-
cond_start_val
(bool
, default:False
) –If True, use conditional start values for parameters (experimental). Defaults to False.
-
max_it_outer
(int
, default:30
) –Maximum number of outer iterations for the fitting algorithm. Defaults to 30.
-
max_it_inner
(int
, default:30
) –Maximum number of inner iterations for the fitting algorithm. Defaults to 30.
-
abs_tol_outer
(float
, default:0.001
) –Absolute tolerance for convergence in the outer loop. Defaults to 1e-3.
-
abs_tol_inner
(float
, default:0.001
) –Absolute tolerance for convergence in the inner loop. Defaults to 1e-3.
-
rel_tol_outer
(float
, default:1e-05
) –Relative tolerance for convergence in the outer loop. Defaults to 1e-5.
-
rel_tol_inner
(float
, default:1e-05
) –Relative tolerance for convergence in the inner loop. Defaults to 1e-5.
-
min_it_outer
(int
, default:1
) –Minimum number of outer iterations before checking for convergence. Defaults to 1.
Attributes:
-
distribution
(Distribution
) –The distribution used for modeling.
-
equation
(Dict[int, Union[str, ndarray, list]]
) –The modeling equation for each distribution parameter.
-
forget
(Dict[int, float]
) –Forget factor for each distribution parameter.
-
fit_intercept
(Dict[int, bool]
) –Whether to fit an intercept for each parameter.
-
regularize_intercept
(Dict[int, bool]
) –Whether to regularize the intercept for each parameter.
-
ic
(Dict[int, str]
) –Information criterion for model selection for each parameter.
-
method
(Dict[int, EstimationMethod]
) –Estimation method for each parameter.
-
scale_inputs
(bool | ndarray
) –Whether to scale the input features.
-
param_order
(ndarray | None
) –Order in which to fit the distribution parameters.
-
n_observations_
(float
) –Total number of observations used for fitting.
-
n_training_
(Dict[int, int]
) –Effective training length for each distribution parameter.
-
n_features_
(Dict[int, int]
) –Number of features used for each distribution parameter.
-
coef_
(ndarray
) –Coefficients for the fitted model, shape (n_params, n_features).
-
coef_path_
(ndarray
) –Coefficients path for the fitted model, shape (n_params, n_iterations, n_features). Only available if
method
is a path-based method like LASSO.
Returns:
-
OnlineDistributionalRegression
(OnlineDistributionalRegression
) –The OnlineDistributionalRegression instance.
fit
fit(
X: ndarray,
y: ndarray,
sample_weight: Optional[ndarray] = None,
) -> OnlineDistributionalRegression
Fit the online GAMLSS model.
This method initializes the model with the given covariate data matrix \(X\) and response variable \(Y\).
Parameters:
-
X
(ndarray
) –Covariate data matrix \(X\).
-
y
(ndarray
) –Response variable \(Y\).
-
sample_weight
(Optional[ndarray]
, default:None
) –User-defined sample weights. Defaults to None.
Returns:
-
OnlineDistributionalRegression
(OnlineDistributionalRegression
) –The fitted OnlineDistributionalRegression instance.
Raises:
-
ValueError
–If the equation is not specified correctly.
-
OutOfSupportError
–If the values of \(y\) are below or above the distribution's support.
update
Update the fit for the online GAMLSS Model.
Parameters:
-
X
(ndarray
) –Covariate data matrix \(X\).
-
y
(ndarray
) –Response variable \(Y\).
-
sample_weight
(Optional[ndarray]
, default:None
) –User-defined sample weights. Defaults to None (all observations have the same weight).
predict
Predict the mean of the response distribution.
Parameters:
-
X
(ndarray
) –Covariate matrix \(X\). Shape should be (n_samples, n_features).
Raises: NotFittedError: If the model is not fitted yet.
Returns:
-
Predictions
(ndarray
) –Predictions
predict_median
Predict the median of the distribution.
Parameters:
-
X
(ndarray
) –Covariate matrix \(X\). Shape should be (n_samples, n_features).
Raises: NotFittedError: If the model is not fitted yet.
Returns:
-
Predictions
(ndarray
) –Predicted median of the distribution. Shape will be (n_samples,).
predict_distribution_parameters
predict_distribution_parameters(
X: ndarray,
what: str = "response",
return_contributions: bool = False,
) -> np.ndarray
Predict the distibution parameters given input data.
Parameters:
-
X
(ndarray
) –Design matrix.
-
what
(str
, default:'response'
) –Predict the response or the link. Defaults to "response". Remember the GAMLSS models \(g(\theta) = X^T\beta\). Predict
"link"
will output \(X^T\beta\), predict"response"
will output \(g^{-1}(X^T\beta)\). Usually, you want predict ="response"
. -
return_contributions
(bool
, default:False
) –Whether to return a
Tuple[prediction, contributions]
where the contributions of the individual covariates for each distribution parameter's predicted value is specified. Defaults to False.
Raises:
-
ValueError
–Raises if
what
is not in["link", "response"]
.
Returns:
-
Predictions
(ndarray
) –Predicted values for the distribution of shape (n_samples, n_params) where n_params is the number of distribution parameters.
predict_quantile
Predict the quantile(s) of the distribution.
Parameters:
-
X
(ndarray
) –Covariate matrix \(X\). Shape should be (n_samples, n_features).
-
quantile
(float | ndarray
) –Quantile(s) to predict.
Returns:
-
ndarray
–np.ndarray: Predicted quantile(s) of the distribution. Shape will be (n_samples, n_quantiles).
get_debug_information
get_debug_information(
variable: str = "coef",
param: int = 0,
it_outer: int = 1,
it_inner: int = 1,
)
Get debug information for a specific variable, parameter, outer iteration and inner iteration.
We currently support the following variables:
- "X_dict": The design matrix for the distribution parameter.
- "X_scaled": The scaled design matrix.
- "weights": The sample weights for the distribution parameter.
- "working_vectors": The working vectors for the distribution parameter.
- "dl1dlp1": The first derivative of the log-likelihood with respect to the distribution parameter.
- "dl2dlp2": The second derivative of the log-likelihood with respect to the distribution parameter.
- "eta": The linear predictor for the distribution parameter.
- "fv": The fitted values for the distribution parameter.
- "dv": The deviance for the distribution parameter.
- "coef": The coefficients for the distribution parameter.
- "coef_path": The coefficients path for the distribution parameter.
Parameters:
-
variable
(str
, default:'coef'
) –The variable to get debug information for. Defaults to "coef".
-
param
(int
, default:0
) –The distribution parameter to get debug information for. Defaults to 0.
-
it_outer
(int
, default:1
) –The outer iteration to get debug information for. Defaults to 1.
-
it_inner
(int
, default:1
) –The inner iteration to get debug information for. Defaults to 1.
Returns: Any: The debug information for the specified variable, parameter, outer iteration and inner iteration. Raises: ValueError: If debug mode is not enabled.
ondil.estimators.MultivariateOnlineDistributionalRegressionPath
Bases: OndilEstimatorMixin
, RegressorMixin
, MultiOutputMixin
, BaseEstimator
__init__
__init__(
distribution: Distribution = MultivariateNormalInverseCholesky(),
equation: Dict | None = None,
forget: float | Dict = 0.0,
learning_rate: float = 0.0,
fit_intercept: bool = True,
regularize_intercept: bool = False,
scale_inputs: bool = True,
verbose: int = 1,
method: (
Literal["ols", "lasso"]
| Dict[int, Literal["ols", "lasso"]]
) = "ols",
ic: Literal["ll", "aic", "bic", "hqc", "max"] = "aic",
iteration_along_diagonal: bool = False,
approx_fast_model_selection: bool = True,
max_regularisation_size: int | None = None,
early_stopping: bool = True,
early_stopping_criteria: Literal[
"ll", "aic", "bic", "hqc", "max"
] = "aic",
early_stopping_abs_tol: float = 0.001,
early_stopping_rel_tol: float = 0.001,
weight_delta: float | Dict[int, float] = 1.0,
max_iterations_inner: int = 10,
max_iterations_outer: int = 10,
overshoot_correction: Optional[Dict[int, float]] = None,
dampen_estimation: bool | int = False,
debug: bool = False,
rel_tol_inner: float = 0.001,
abs_tol_inner: float = 0.001,
rel_tol_outer: float = 0.001,
abs_tol_outer: float = 0.001,
)
Initialize the Online Multivariate Distributional Regression Path Estimator.
This estimator fits a multivariate distribution to the data using an online approach. It regularizes the scale matrix by estimating it sequentially from an "independence" configuration to a full covariance matrix, using the AD-R regularization scheme. Supports various regression methods, model selection criteria, early stopping, and input scaling.
Parameters:
-
distribution
(Distribution
, default:MultivariateNormalInverseCholesky()
) –The multivariate distribution to fit. Defaults to MultivariateNormalInverseCholesky().
-
equation
(Dict | None
, default:None
) –Dictionary specifying the regression equation. Defaults to None.
-
forget
(float | Dict
, default:0.0
) –Forgetting factor for online updates, can be a float or per-dimension dict. Defaults to 0.0.
-
learning_rate
(float
, default:0.0
) –Learning rate for online updates. Defaults to 0.0.
-
fit_intercept
(bool
, default:True
) –Whether to fit an intercept term. Defaults to True.
-
regularize_intercept
(bool
, default:False
) –Whether to regularize the intercept term. Defaults to False.
-
scale_inputs
(bool
, default:True
) –Whether to scale input features. Defaults to True.
-
verbose
(int
, default:1
) –Verbosity level for logging. Defaults to 1.
-
method
(Literal['ols', 'lasso'] | Dict[int, Literal['ols', 'lasso']]
, default:'ols'
) –Regression method(s) to use, either "ols", "lasso", or per-dimension dict. Defaults to "ols".
-
ic
(Literal['ll', 'aic', 'bic', 'hqc', 'max']
, default:'aic'
) –Information criterion for model selection. Defaults to "aic".
-
iteration_along_diagonal
(bool
, default:False
) –If True, iterates regularization along the diagonal of the scale matrix. Defaults to False.
-
approx_fast_model_selection
(bool
, default:True
) –If True, uses approximate fast model selection. Defaults to True.
-
max_regularisation_size
(int | None
, default:None
) –Maximum size for regularization path. Defaults to None.
-
early_stopping
(bool
, default:True
) –Enables early stopping during regularization. Defaults to True.
-
early_stopping_criteria
(Literal['ll', 'aic', 'bic', 'hqc', 'max']
, default:'aic'
) –Criterion for early stopping. Defaults to "aic".
-
early_stopping_abs_tol
(float
, default:0.001
) –Absolute tolerance for early stopping. Defaults to 0.001.
-
early_stopping_rel_tol
(float
, default:0.001
) –Relative tolerance for early stopping. Defaults to 0.001.
-
weight_delta
(float | Dict[int, float]
, default:1.0
) –Step size for weight updates, can be float or per-dimension dict. Defaults to 1.0.
-
max_iterations_inner
(int
, default:10
) –Maximum number of inner iterations. Defaults to 10.
-
max_iterations_outer
(int
, default:10
) –Maximum number of outer iterations. Defaults to 10.
-
overshoot_correction
(Optional[Dict[int, float]]
, default:None
) –Correction factors for overshooting during updates. Defaults to None.
-
dampen_estimation
(bool | int
, default:False
) –If True or int, dampens estimation updates. Defaults to False.
-
debug
(bool
, default:False
) –Enables debug mode for additional logging. Defaults to False.
-
rel_tol_inner
(float
, default:0.001
) –Relative tolerance for convergence in inner loop. Defaults to 1e-3.
-
abs_tol_inner
(float
, default:0.001
) –Absolute tolerance for convergence in inner loop. Defaults to 1e-3.
-
rel_tol_outer
(float
, default:0.001
) –Relative tolerance for convergence in outer loop. Defaults to 1e-3.
-
abs_tol_outer
(float
, default:0.001
) –Absolute tolerance for convergence in outer loop. Defaults to 1e-3.
fit
Fit the estimator to the data.
Note
The response \(y\) must be a multivariate response
variable, i.e., a 2D array where each column represents
a different response variable and we expect at least a
bivariate response. Hence, passing an (n, 1)
array
for y does not work!
Parameters:
-
X
(ndarray
) –Covariate or feature matrix.
-
y
(ndarray
) –Multivariate response variable.
Returns:
-
estimator
(MultivariateOnlineDistributionalRegressionPath
) –Returns the fitted estimator.
count_coef_to_be_fitted
count_coef_to_be_fitted(
outer_iteration: int,
inner_iteration: int,
adr: int,
param: int,
k: int,
)
Count all coefficients that should be fitted.
predict
Predict the location parameter.
Parameters
X : np.ndarray, optional The input data. If None, will use a default value of ones.
predict_distribution_parameters
Predict the distribution parameters.
Parameters:
-
X
(Optional[ndarray]
, default:None
) –Covariate or feature matrix. Defaults to None.
Returns:
-
Dict[int, ndarray]
–Dict[int, np.ndarray]: Return the predicted distribution parameters as a dictionary.
predict_all_adr
Predict all regualarized fits in one go.
Parameters:
-
X
(Optional[ndarray]
, default:None
) –Covariate or feature matrix. Defaults to None.
Returns:
-
Dict[int, ndarray]
–Dict[int, np.ndarray]: Return the predicted distribution parameters for all AD-R steps as a dictionary. The structure is
-
Dict[int, ndarray]
–{adr_step: {param: np.ndarray}} where
adr_step
is the AD-R step index andparam
is the distribution parameter index.
partial_fit
Align ondil with the scikit-learn API for partial fitting.
The first partial fit will call fit
, and subsequent calls will call update
.
Allows furthermore to use the sklearn testing framework.
Overwrites the base class method to avoid sample_weights. This estimator does not support sample weights.
Parameters
X : np.ndarray The input data. y : np.ndarray The target values. Returns
self : Estimator The fitted estimator.
update
Updates the estimator with new observations.
This method validates the input data, updates internal counters for the number of observations, recalculates the effective training length based on the learning rate, and updates the model's likelihood. It also scales the input features, stores previous states for model selection and likelihood, and performs an outer update step with the scaled data.
Parameters
X : np.ndarray Input feature matrix of shape (n_samples, n_features). y : np.ndarray Target values of shape (n_samples, n_outputs). Returns
self : object Returns the updated estimator instance.