Source code for mindfoundry.optaas.client.sklearn_pipelines.estimators.pca

from sklearn.decomposition import PCA as BasePCA

from mindfoundry.optaas.client.sklearn_pipelines.mixin import OptimizableBaseEstimator
from mindfoundry.optaas.client.sklearn_pipelines.parameter_maker import SklearnParameterMaker
from mindfoundry.optaas.client.sklearn_pipelines.utils import ParametersConstraintsAndPriorMeans


[docs]class PCA(BasePCA, OptimizableBaseEstimator):
[docs] def make_parameters_constraints_and_prior_means(self, sk: SklearnParameterMaker, **kwargs)\ -> ParametersConstraintsAndPriorMeans: """Generates :class:`Parameters <.Parameter>`, :class:`Constraints <.Constraint>` and :class:`PriorMeans <.PriorMeans>` to optimize a :class:`.PCA` estimator. Args: feature_count (int): Total number of features in your dataset. """ feature_count = self.get_required_kwarg(kwargs, 'feature_count') max_n_components = feature_count - 1 if self.svd_solver == 'arpack' else feature_count return [ sk.IntParameter('n_components', minimum=1, maximum=max_n_components), sk.BoolParameter('whiten') ], [], []