pykoop.QmcCenters

class QmcCenters(n_centers=100, symmetric_range=False, qmc=None, qmc_kw=None, random_state=None)

Bases: Centers

Centers generated with Quasi-Monte Carlo sampling.

Parameters:
centers_

Centers, shape (n_centers, n_features).

Type:

np.ndarray

n_centers_

Number of centers generated.

Type:

int

n_features_in_

Number of features input.

Type:

int

range_max_

Maximum value of each feature used to generate grid.

Type:

np.ndarray

range_min_

Minimum value of each feature used to generate grid.

Type:

np.ndarray

qmc_

Quasi-Monte Carlo sampler instantiated from qmc.

Type:

stats.qmc.QMCEngine

Examples

Generate centers using Latin hypercube sampling (default)

>>> qmc = pykoop.QmcCenters(n_centers=10)
>>> qmc.fit(X_msd[:, 1:])  # Remove episode feature
QmcCenters(n_centers=10)
>>> qmc.centers_
array([...])

Generate centers using a Sobol sequence

>>> qmc = pykoop.QmcCenters(n_centers=8, qmc=scipy.stats.qmc.Sobol)
>>> qmc.fit(X_msd[:, 1:])  # Remove episode feature
QmcCenters(n_centers=8, qmc=<class 'scipy.stats._qmc.Sobol'>)
>>> qmc.centers_
array([...])
__init__(n_centers=100, symmetric_range=False, qmc=None, qmc_kw=None, random_state=None)

Instantiate QmcCenters.

Parameters:
  • n_centers (int) – Number of centers to generate.

  • symmetric_range (bool) – If true, the grid range for a given feature is forced to be symmetric about zero (i.e., [-max(abs(x)), max(abs(x))]). Otherwise, the grid range is taken directly on the data (i.e., [min(x), max(x)]). Default is false.

  • qmc (Optional[Callable[..., stats.qmc.QMCEngine]]) –

    Quasi-Monte Carlo method from scipy.stats.qmc to use. Argument is the desired subclass of scipy.stats.qmc.QMCEngine to use. Accepts the class itself, not an instance of the class. Possible values are

    If None, defaults to Latin hypercube sampling.

  • qmc_kw (Optional[Dict[str, Any]]) – Additional keyword arguments passed when instantiating qmc. If seed is specified here, it takes precedence over random_state.

  • random_state (Union[int, np.random.RandomState, None]) – Random seed.

Return type:

None

Methods

__init__([n_centers, symmetric_range, qmc, ...])

Instantiate QmcCenters.

fit(X[, y])

Generate centers from data.

get_metadata_routing()

Get metadata routing of this object.

get_params([deep])

Get parameters for this estimator.

set_params(**params)

Set the parameters of this estimator.

fit(X, y=None)

Generate centers from data.

Parameters:
  • X (np.ndarray) – Data matrix.

  • y (Optional[np.ndarray]) – Ignored.

Returns:

Instance of itself.

Return type:

Centers

Raises:

ValueError – If any of the constructor parameters are incorrect.

get_metadata_routing()

Get metadata routing of this object.

Please check User Guide on how the routing mechanism works.

Returns:

routing – A MetadataRequest encapsulating routing information.

Return type:

MetadataRequest

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

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