API Reference#

alpha_stable

A Distribution continuous random variable.

multivariate_alpha_stable

Multivariate alpha stable distribution generator.

random

Random number generation for Alpha Stable Distributions

statistics

Statistics for Alpha Stable Distributions

machine_learning

Machine Learning for Alpha Stable Distributions.

class aub_htp.AlphaStableKMeans(n_clusters: int = 8, alpha: float = 1.0, *, max_iter: int = 100, tol: float = 1e-06)#

Bases: ClusterMixin, BaseEstimator

fit(X, y=None)#
predict(X)#
score(X, y=None, sample_weight=None)#
set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') AlphaStableKMeans#

Configure whether metadata should be requested to be passed to the score method.

Note that this method is only relevant when this estimator is used as a sub-estimator within a meta-estimator and metadata routing is enabled with enable_metadata_routing=True (see sklearn.set_config()). Please check the User Guide on how the routing mechanism works.

The options for each parameter are:

  • True: metadata is requested, and passed to score if provided. The request is ignored if metadata is not provided.

  • False: metadata is not requested and the meta-estimator will not pass it to score.

  • None: metadata is not requested, and the meta-estimator will raise an error if the user provides it.

  • str: metadata should be passed to the meta-estimator with this given alias instead of the original name.

The default (sklearn.utils.metadata_routing.UNCHANGED) retains the existing request. This allows you to change the request for some parameters and not others.

Added in version 1.3.

Parameters#

sample_weightstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED

Metadata routing for sample_weight parameter in score.

Returns#

selfobject

The updated object.

class aub_htp.AlphaStableLinearRegressor(alpha: float = 1.0, *, max_iter: int = 5000, tol: float = 1e-06, optimizer: str = 'Powell')#

Bases: RegressorMixin, BaseEstimator

Scikit-learn compatible Alpha-stable linear regression.

Given \(\textbf{x}\) and \(\textbf{y}\) as training data, where \(\textbf{x}\) is a matrix of shape (n_samples, n_features) and \(\textbf{y}\) is a matrix of shape (n_samples, n_targets), the objective is to find the weights \(\textbf{w}\) and bias \(b\) that minimizes the loss function:

\[\mathrm{arg\,min}_{\mathbf{w}, b} P_\alpha(y - (\mathbf{x}\mathbf{w}^T + b))^\alpha\]
fit(X, y)#
predict(X)#
score(X, y, sample_weight=None)#

Return coefficient of determination on test data.

The coefficient of determination, \(R^2\), is defined as \((1 - \frac{u}{v})\), where \(u\) is the residual sum of squares ((y_true - y_pred)** 2).sum() and \(v\) is the total sum of squares ((y_true - y_true.mean()) ** 2).sum(). The best possible score is 1.0 and it can be negative (because the model can be arbitrarily worse). A constant model that always predicts the expected value of y, disregarding the input features, would get a \(R^2\) score of 0.0.

Parameters#

Xarray-like of shape (n_samples, n_features)

Test samples. For some estimators this may be a precomputed kernel matrix or a list of generic objects instead with shape (n_samples, n_samples_fitted), where n_samples_fitted is the number of samples used in the fitting for the estimator.

yarray-like of shape (n_samples,) or (n_samples, n_outputs)

True values for X.

sample_weightarray-like of shape (n_samples,), default=None

Sample weights.

Returns#

scorefloat

\(R^2\) of self.predict(X) w.r.t. y.

Notes#

The \(R^2\) score used when calling score on a regressor uses multioutput='uniform_average' from version 0.23 to keep consistent with default value of r2_score(). This influences the score method of all the multioutput regressors (except for MultiOutputRegressor).

set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') AlphaStableLinearRegressor#

Configure whether metadata should be requested to be passed to the score method.

Note that this method is only relevant when this estimator is used as a sub-estimator within a meta-estimator and metadata routing is enabled with enable_metadata_routing=True (see sklearn.set_config()). Please check the User Guide on how the routing mechanism works.

The options for each parameter are:

  • True: metadata is requested, and passed to score if provided. The request is ignored if metadata is not provided.

  • False: metadata is not requested and the meta-estimator will not pass it to score.

  • None: metadata is not requested, and the meta-estimator will raise an error if the user provides it.

  • str: metadata should be passed to the meta-estimator with this given alias instead of the original name.

The default (sklearn.utils.metadata_routing.UNCHANGED) retains the existing request. This allows you to change the request for some parameters and not others.

Added in version 1.3.

Parameters#

sample_weightstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED

Metadata routing for sample_weight parameter in score.

Returns#

selfobject

The updated object.

class aub_htp.AlphaStablePCA(n_components: int = None, alpha: float = 1.0, *, shape_estimation_method: Literal['method1', 'method2', 'method3'] = 'method1')#

Bases: TransformerMixin, BaseEstimator

components_: ndarray#
fit(X, y=None)#
fit_transform(X, y=None)#

Fit to data, then transform it.

Fits transformer to X and y with optional parameters fit_params and returns a transformed version of X.

Parameters#

Xarray-like of shape (n_samples, n_features)

Input samples.

yarray-like of shape (n_samples,) or (n_samples, n_outputs), default=None

Target values (None for unsupervised transformations).

**fit_paramsdict

Additional fit parameters. Pass only if the estimator accepts additional params in its fit method.

Returns#

X_newndarray array of shape (n_samples, n_features_new)

Transformed array.

location_: ndarray#
power_: ndarray#
score(X, y=None)#
shape_: ndarray#
transform(X)#
class aub_htp.AlphaStableShape(alpha: float = 1.0, alpha_kernel: float = None, alpha_data: float = None, method: Literal['method1', 'method2', 'method3'] = 'method1')#

Bases: BaseEstimator

fit(X, y=None)#
score(X, y=None)#
class aub_htp.BaseSpectralMeasureSampler#

Bases: ABC

Spectral Measure Sampler is an interface to define the sampling algorithm for a spectral measure. The underlying mathematical spectral measure \(\Lambda\) has to uphold the following property:

\[\int_{\mathbb{S}^{d-1}}s\Lambda(ds)=0\]

To create a custom spectral measure sampler, you need to inherit from this class and implement the following methods:

Example:

class CustomSpectralMeasureSampler(BaseSpectralMeasureSampler):
    def sample(self, number_of_samples: int, random_state: None | int | np.random.RandomState | np.random.Generator = None) -> np.ndarray:
        random_state = get_random_state_generator(random_state)
        return random_state.rand(number_of_samples, self.dimensions())
    def dimensions(self) -> int:
        return 2
    def mass(self) -> float:
        return 1.0
abstractmethod dimensions() int#

Number of dimensions of the vector space of the spectral measure.

Returns#

dimensions : int

abstractmethod mass() float#

Mass of the spectral measure.

Returns#

mass : float

abstractmethod sample(number_of_samples: int, random_state: None | int | RandomState | Generator = None) ndarray#

Sampling algorithm for the spectral measure sampler.

Parameters#

number_of_samplesint

The number of samples to draw from the spectral measure.

random_stateNone | int | np.random.RandomState | np.random.Generator, optional

The random state to use for the sampling. You are encouraged to use aub_htp.random.get_random_state_generator() to get a random state generator as such: random_state = get_random_state_generator(random_state)

Returns#

samplesnp.ndarray

The samples from the spectral measure.

class aub_htp.DiscreteSampler(alpha: float, positions: ndarray, weights: ndarray)#

Bases: BaseSpectralMeasureSampler

dimensions() int#

Number of dimensions of the vector space of the spectral measure.

Returns#

dimensions : int

mass() float#

Mass of the spectral measure.

Returns#

mass : float

sample(number_of_samples: int, random_state: None | int | RandomState | Generator = None) ndarray#

Sampling algorithm for the spectral measure sampler.

Parameters#

number_of_samplesint

The number of samples to draw from the spectral measure.

random_stateNone | int | np.random.RandomState | np.random.Generator, optional

The random state to use for the sampling. You are encouraged to use aub_htp.random.get_random_state_generator() to get a random state generator as such: random_state = get_random_state_generator(random_state)

Returns#

samplesnp.ndarray

The samples from the spectral measure.

class aub_htp.EllipticSampler(number_of_dimensions: int, alpha: float, sigma: ndarray, mass: float | None = None)#

Bases: BaseSpectralMeasureSampler

dimensions() int#

Number of dimensions of the vector space of the spectral measure.

Returns#

dimensions : int

mass() float#

Mass of the spectral measure.

Returns#

mass : float

sample(number_of_samples: int, random_state: None | int | RandomState | Generator = None) ndarray#

Sampling algorithm for the spectral measure sampler.

Parameters#

number_of_samplesint

The number of samples to draw from the spectral measure.

random_stateNone | int | np.random.RandomState | np.random.Generator, optional

The random state to use for the sampling. You are encouraged to use aub_htp.random.get_random_state_generator() to get a random state generator as such: random_state = get_random_state_generator(random_state)

Returns#

samplesnp.ndarray

The samples from the spectral measure.

class aub_htp.IsotropicSampler(number_of_dimensions: int, alpha: float, gamma: float)#

Bases: BaseSpectralMeasureSampler

dimensions() int#

Number of dimensions of the vector space of the spectral measure.

Returns#

dimensions : int

mass() float#

Mass of the spectral measure.

Returns#

mass : float

sample(number_of_samples: int, random_state: None | int | RandomState | Generator = None) ndarray#

Sampling algorithm for the spectral measure sampler.

Parameters#

number_of_samplesint

The number of samples to draw from the spectral measure.

random_stateNone | int | np.random.RandomState | np.random.Generator, optional

The random state to use for the sampling. You are encouraged to use aub_htp.random.get_random_state_generator() to get a random state generator as such: random_state = get_random_state_generator(random_state)

Returns#

samplesnp.ndarray

The samples from the spectral measure.

class aub_htp.MixedSampler(spectral_measures: list[BaseSpectralMeasureSampler], weights: ndarray)#

Bases: BaseSpectralMeasureSampler

dimensions() int#

Number of dimensions of the vector space of the spectral measure.

Returns#

dimensions : int

mass() float#

Mass of the spectral measure.

Returns#

mass : float

sample(number_of_samples: int, random_state: None | int | RandomState | Generator = None) ndarray#

Sampling algorithm for the spectral measure sampler.

Parameters#

number_of_samplesint

The number of samples to draw from the spectral measure.

random_stateNone | int | np.random.RandomState | np.random.Generator, optional

The random state to use for the sampling. You are encouraged to use aub_htp.random.get_random_state_generator() to get a random state generator as such: random_state = get_random_state_generator(random_state)

Returns#

samplesnp.ndarray

The samples from the spectral measure.

class aub_htp.UnivariateSampler(alpha: float, beta: float, gamma: float)#

Bases: BaseSpectralMeasureSampler

dimensions() int#

Number of dimensions of the vector space of the spectral measure.

Returns#

dimensions : int

mass() float#

Mass of the spectral measure.

Returns#

mass : float

sample(number_of_samples: int, random_state: None | int | RandomState | Generator = None) ndarray#

Sampling algorithm for the spectral measure sampler.

Parameters#

number_of_samplesint

The number of samples to draw from the spectral measure.

random_stateNone | int | np.random.RandomState | np.random.Generator, optional

The random state to use for the sampling. You are encouraged to use aub_htp.random.get_random_state_generator() to get a random state generator as such: random_state = get_random_state_generator(random_state)

Returns#

samplesnp.ndarray

The samples from the spectral measure.

aub_htp.alpha_location(data: ndarray, alpha: float) ndarray#
aub_htp.alpha_power(data: ndarray, alpha: float) float#
class aub_htp.alpha_stable_gen(momtype=1, a=None, b=None, xtol=1e-14, badvalue=None, name=None, longname=None, shapes=None, seed=None)#

Bases: rv_continuous

property parameterization#
pdf(x, *args, **kwds)#

Probability density function at x of the given RV.

Parameters#

xarray_like

quantiles

arg1, arg2, arg3,…array_like

The shape parameter(s) for the distribution (see docstring of the instance object for more information)

locarray_like, optional

location parameter (default=0)

scalearray_like, optional

scale parameter (default=1)

Returns#

pdfndarray

Probability density function evaluated at x

rvs(*args, **kwds)#

Random variates of given type.

Parameters#

arg1, arg2, arg3,…array_like

The shape parameter(s) for the distribution (see docstring of the instance object for more information).

locarray_like, optional

Location parameter (default=0).

scalearray_like, optional

Scale parameter (default=1).

sizeint or tuple of ints, optional

Defining number of random variates (default is 1).

random_state{None, int, numpy.random.Generator,

numpy.random.RandomState}, optional

If random_state is None (or np.random), the numpy.random.RandomState singleton is used. If random_state is an int, a new RandomState instance is used, seeded with random_state. If random_state is already a Generator or RandomState instance, that instance is used.

Returns#

rvsndarray or scalar

Random variates of given size.

with_parametrization(parametrization: Literal['S1', 'S0'])#
aub_htp.get_random_state_generator(random_state: None | int | RandomState | Generator = None) Generator#

A scipy-compatible random state generator factory. This function is used to get a random state generator from a random state.

Parameters#

random_stateNone | int | np.random.RandomState | np.random.Generator, optional

The random state to use for the sampling.

Returns#

random_state_generatornp.random.Generator

The random state generator.

aub_htp.l_alpha_loss(y, y_pred, *, alpha: float)#
class aub_htp.multivariate_alpha_stable_gen(seed=None)#

Bases: multi_rv_generic

Multivariate alpha stable distribution generator.

rvs(alpha: float, spectral_measure_sampler: BaseSpectralMeasureSampler | Literal['standard_isotropic_2d', 'standard_isotropic_3d', '1x2_elliptic_2d', '1x2x4_elliptic_3d', 'coin_flip_discrete'] = 'standard_isotropic_2d', shift: ndarray = 0, size: int | None = None, random_state: None | int | RandomState | Generator = None)#

Sample from a multivariate alpha stable distribution.

Parameters#

alphafloat

The alpha parameter of the alpha stable distribution.

spectral_measure_samplerBaseSpectralMeasureSampler or str

The spectral measure sampler to use.

shiftnp.ndarray

The shift vector to apply to the samples.

sizeint or tuple of ints, optional

Defines the shape of the returned array. Default is 1.

random_stateint or None, optional

Random state to use for the random number generator.

Returns#

samplesndarray

Samples from the multivariate alpha stable distribution.

Raises#

ValueError

If the spectral measure sampler is not supported.

aub_htp.r_alpha_score(y, y_pred, *, alpha: float) float#
aub_htp.sample_alpha_stable_vector(alpha: float, spectral_measure: BaseSpectralMeasureSampler, number_of_samples: int = 1, shift_vector: ndarray = 0, max_number_of_convergence_terms: int = 50000, error: float = 0.01, random_state: None | int | RandomState | Generator = None)#