skfolio.distribution.BaseDistribution#
- class skfolio.distribution.BaseDistribution(random_state=None)[source]#
Base Distribution Estimator.
This abstract class serves as a foundation for distribution models in skfolio.
- random_stateint, RandomState instance or None, default=None
Seed or random state to ensure reproducibility.
- Attributes:
fitted_reprString representation of the fitted model.
n_paramsNumber of model parameters.
Methods
aic(X)Compute the Akaike Information Criterion (AIC) for the model given data X.
bic(X)Compute the Bayesian Information Criterion (BIC) for the model given data X.
fit(X[, y])Fit the univariate distribution model.
Get metadata routing of this object.
get_params([deep])Get parameters for this estimator.
sample([n_samples])Generate random samples from the fitted model.
score(X[, y])Compute the total log-likelihood under the model.
Compute the log-likelihood of each sample (log-pdf) under the model.
set_params(**params)Set the parameters of this estimator.
- aic(X)[source]#
Compute the Akaike Information Criterion (AIC) for the model given data X.
The AIC is defined as:
\[\mathrm{AIC} = -2 \, \log L \;+\; 2 k,\]where
\(\log L\) is the total log-likelihood
\(k\) is the number of parameters in the model
A lower AIC value indicates a better trade-off between model fit and complexity.
- Parameters:
- Xarray-like of shape (n_observations, n_features)
The input data on which to compute the AIC.
- Returns:
- aicfloat
The AIC of the fitted model on the given data.
Notes
In practice, both AIC and BIC measure the trade-off between model fit and complexity, but BIC tends to prefer simpler models for large \(n\) because of the \(\ln(n)\) term.
References
[1]“A new look at the statistical model identification”, Akaike (1974).
- bic(X)[source]#
Compute the Bayesian Information Criterion (BIC) for the model given data X.
The BIC is defined as:
\[\mathrm{BIC} = -2 \, \log L \;+\; k \,\ln(n),\]where
\(\log L\) is the (maximized) total log-likelihood
\(k\) is the number of parameters in the model
\(n\) is the number of observations
A lower BIC value suggests a better fit while imposing a stronger penalty for model complexity than the AIC.
- Parameters:
- Xarray-like of shape (n_observations, n_features)
The input data on which to compute the BIC.
- Returns:
- bicfloat
The BIC of the fitted model on the given data.
Notes
In practice, both AIC and BIC measure the trade-off between model fit and complexity, but BIC tends to prefer simpler models for large \(n\) because of the \(\ln(n)\) term.
References
[1]“Estimating the dimension of a model”, Schwarz, G. (1978).
- abstractmethod fit(X, y=None)[source]#
Fit the univariate distribution model.
- Parameters:
- Xarray-like of shape (n_observations, n_features)
The input data.
- yNone
Ignored. Provided for compatibility with scikit-learn’s API.
- Returns:
- selfBaseDistribution
Returns the instance itself.
- abstract property fitted_repr#
String representation of the fitted model.
- get_metadata_routing()#
Get metadata routing of this object.
Please check User Guide on how the routing mechanism works.
- Returns:
- routingMetadataRequest
A
MetadataRequestencapsulating routing information.
- get_params(deep=True)#
Get parameters for this estimator.
- Parameters:
- deepbool, default=True
If True, will return the parameters for this estimator and contained subobjects that are estimators.
- Returns:
- paramsdict
Parameter names mapped to their values.
- abstract property n_params#
Number of model parameters.
- sample(n_samples=1)[source]#
Generate random samples from the fitted model.
- Parameters:
- n_samplesint, default=1
Number of samples to generate.
- Returns:
- Xarray-like of shape (n_samples, 1)
List of samples.
- score(X, y=None)[source]#
Compute the total log-likelihood under the model.
- Parameters:
- Xarray-like of shape (n_observations, n_features)
An array of data points for which the total log-likelihood is computed.
- yNone
Ignored. Provided for compatibility with scikit-learn’s API.
- Returns:
- logprobfloat
The total log-likelihood (sum of log-pdf values).
- abstractmethod score_samples(X)[source]#
Compute the log-likelihood of each sample (log-pdf) under the model.
- Parameters:
- Xarray-like of shape (n_observations, n_features)
The input data.
- Returns:
- densityndarray of shape (n_observations,)
Log-likelihood values for each observation in X.
- 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:
- **paramsdict
Estimator parameters.
- Returns:
- selfestimator instance
Estimator instance.