def _fit_transformer_with_progress_logging(transformer: TransformerMixin,
                                           X,
                                           logger: logging.Logger,
                                           message_prefix: str,
                                           unit: str,
                                           message_suffx: str = ': '):
    if isinstance(transformer, Pipeline):
        steps = transformer.steps
        if len(steps) == 1 and isinstance(steps[0][1], FeatureUnion):
            feature_union = steps[0][1]
            for name, union_transformer in feature_union.transformer_list:
                X = logging_tqdm(
                    iterable=X,
                    logger=logger,
                    desc=f'{message_prefix}.{name}{message_suffx}',
                    unit=unit)
                union_transformer.fit(X)
            return
    X = logging_tqdm(iterable=X,
                     logger=logger,
                     desc=message_prefix + message_suffx,
                     unit=unit)
    transformer.fit(X)
Exemplo n.º 2
0
 def fit_transformer(self, transformer: TransformerMixin) -> None:
     """
     Fit a transformer on this dataset.
     """
     transformer.fit(self.XY)
Exemplo n.º 3
0
 def fit_transform_scaler(
         scaler: TransformerMixin,
         x: ArrayLike) -> tuple[TransformerMixin, ArrayLike]:
     fitted = scaler.fit(x)
     return fitted, apply_transform(fitted, x)
Exemplo n.º 4
0
 def fit_on(self, predictor: TransformerMixin):
     """
     :return:
     """
     predictor.fit(self.sample())
     return predictor