Sklearn Pipeline - как наследовать получить параметры в пользовательском трансформаторе (не Оценка)

у меня есть конвейер в scikit-learn, который использует пользовательский трансформатор, который я определяю, как показано ниже:

class MyPipelineTransformer(TransformerMixin):

, который определяет функции

__init__, fit() and transform()

однако, когда я использую конвейер внутри RandomizedSearchCV, я получаю следующую ошибку:

объект 'MyPipelineTransformer' не имеет атрибута 'get_params'

Я читал онлайн (например, ссылки ниже)

(Python-sklearn) как передать параметры в настройка класса ModelTransformer по gridsearchcv

http://scikit-learn.org/stable/auto_examples/hetero_feature_union.html

что я мог бы получить "get_params", наследуя от BaseEstimator, а не мой текущий код, наследующий только от TransformerMixin. Но мой трансформатор не оценщик. Есть ли недостаток не-сметчик наследуют от BaseEstimator? Или это рекомендуемый способ получить get_params для любого трансформатора (оценщик или нет) в конвейере?

1 ответов


да, похоже, что это стандартный способ достижения этого. Например в источник sklearn.preprocessing у нас есть

class FunctionTransformer(BaseEstimator, TransformerMixin)