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_repr

String representation of the fitted model.

n_params

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

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.

score_samples(X)

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 MetadataRequest encapsulating 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.