|
7 | 7 | # Joris Van den Bossche |
8 | 8 | # License: BSD |
9 | 9 | from itertools import chain |
| 10 | +from functools import partial |
10 | 11 |
|
11 | 12 | import numpy as np |
12 | 13 | from scipy import sparse |
|
15 | 16 | from ..externals.joblib import Parallel, delayed |
16 | 17 | from ..externals import six |
17 | 18 | from ..pipeline import ( |
18 | | - _fit_one_transformer, _fit_transform_one, _transform_one, _name_estimators) |
| 19 | + _fit_transform_one, _transform_one, _name_estimators) |
19 | 20 | from ..preprocessing import FunctionTransformer |
20 | 21 | from ..utils import Bunch |
21 | 22 | from ..utils.metaestimators import _BaseComposition |
@@ -344,8 +345,9 @@ def _fit_transform(self, X, y, func, fitted=False): |
344 | 345 | """ |
345 | 346 | try: |
346 | 347 | return Parallel(n_jobs=self.n_jobs)( |
347 | | - delayed(func)(clone(trans) if not fitted else trans, |
348 | | - X_sel, y, weight) |
| 348 | + delayed(func)( |
| 349 | + transformer=clone(trans) if not fitted else trans, |
| 350 | + X=X_sel, y=y, weight=weight) |
349 | 351 | for _, trans, X_sel, weight in self._iter( |
350 | 352 | X=X, fitted=fitted, replace_strings=True)) |
351 | 353 | except ValueError as e: |
@@ -375,7 +377,16 @@ def fit(self, X, y=None): |
375 | 377 | self._validate_remainder(X) |
376 | 378 | self._validate_transformers() |
377 | 379 |
|
378 | | - transformers = self._fit_transform(X, y, _fit_one_transformer) |
| 380 | + fit_one_transformer = partial( |
| 381 | + _fit_transform_one, |
| 382 | + is_transform=False, |
| 383 | + clsname="ColumnTransformer", |
| 384 | + message=None |
| 385 | + ) |
| 386 | + |
| 387 | + # fit_one_transformer returns (None, transformer) tuples |
| 388 | + transformer_tuples = self._fit_transform(X, y, fit_one_transformer) |
| 389 | + transformers = [t[1] for t in transformer_tuples] |
379 | 390 | self._update_fitted_transformers(transformers) |
380 | 391 |
|
381 | 392 | return self |
@@ -404,7 +415,13 @@ def fit_transform(self, X, y=None): |
404 | 415 | self._validate_remainder(X) |
405 | 416 | self._validate_transformers() |
406 | 417 |
|
407 | | - result = self._fit_transform(X, y, _fit_transform_one) |
| 418 | + fit_transform_one = partial( |
| 419 | + _fit_transform_one, |
| 420 | + is_transform=True, |
| 421 | + clsname="ColumnTransformer", |
| 422 | + message=None) |
| 423 | + |
| 424 | + result = self._fit_transform(X, y, fit_transform_one) |
408 | 425 |
|
409 | 426 | if not result: |
410 | 427 | # All transformers are None |
|
0 commit comments