передача аргументов в featureUnion transformer_list [duplicate]

Для меня работала переустановка модуля mcrypt.

$sudo apt-get install php5-mcrypt
$sudo php5enmod mcrypt
16
задан nkhuyu 7 January 2015 в 04:14
поделиться

1 ответ

GridSearchCV имеет специальное соглашение об именах для вложенных объектов. В вашем случае ess__rfc__n_estimators означает ess.rfc.n_estimators, и, согласно определению pipeline, он указывает на свойство n_estimators of

ModelTransformer(RandomForestClassifier(n_jobs=-1, random_state=1,  n_estimators=100)))

. Очевидно, ModelTransformer экземпляры don 't имеет такое свойство.

Исправление легко: для доступа к базовому объекту ModelTransformer необходимо использовать поле model. Таким образом, параметры сетки становятся

parameters = {
  'ess__rfc__model__n_estimators': (100, 200),
}

P.S. это не единственная проблема с вашим кодом. Чтобы использовать несколько заданий в GridSearchCV, вам нужно сделать все объекты, которые вы используете для копирования. Это достигается с помощью методов get_params и set_params, их можно брать из BaseEstimator mixin.

16
ответ дан Artem Sobolev 22 August 2018 в 01:07
поделиться
  • 1
    вы можете немного расширить этот PS? Я думаю, что у меня такая же проблема, когда я пытаюсь использовать gridsearchcv с объединением функций конвейера. Я получаю ошибку. AttributeError: объект «SelectColumns» не имеет атрибута «get_params», где SelectColumns - это класс, который я написал для конвейера. – B_Miner 5 June 2015 в 01:43
  • 2
    @B_Miner, вы должны наследовать свой SelectColumns класс из BaseEstimator , который предоставляет вышеупомянутые set_params и get_params. Кроме того, вы можете реализовать свои собственные, но большую часть времени вы не хотите. – Artem Sobolev 5 June 2015 в 01:59
  • 3
    Я искал BaseEstimatorMixin. Я унаследовал от BaseEstimator и работал как шарм, спасибо! – B_Miner 5 June 2015 в 02:19
  • 4
    @ArtemSobolev Я работаю над тем же. Я получаю сообщение об ошибке «не может сделать глубокую копию этого объекта шаблона», когда я пытаюсь использовать cross_val_predict или gridsearch CV с тем же конвейером. Не могли бы вы показать, как вы это сделали с объединением функций? – Thisura Thejith Philips 20 October 2017 в 11:08
Другие вопросы по тегам:

Похожие вопросы: