Извлечь атрибуты MLPRegressor (n_iter_) для лучшей модели в конвейере с помощью GridsearchCV?

Я сделал GridsearchCV с конвейером, и я хочу извлечь один атрибут (n_iter_) компонента конвейера (MLPRegressor) для лучшей модели.

Я использую Python 3.0.

Создание конвейера

pipeline_steps = [('scaler', StandardScaler()), ('MLPR', MLPRegressor(solver='lbfgs', early_stopping=True, validation_fraction=0.1, max_iter=10000))]

MLPR_parameters = {'MLPR__hidden_layer_sizes':[(50,), (100,), (50,50)], 'MLPR__alpha':[0.001, 10, 1000]}

MLPR_pipeline = Pipeline(pipeline_steps)

gridCV_MLPR = GridSearchCV(MLPR_pipeline, MLPR_parameters, cv=kfold)
gridCV_MLPR.fit(X_train, y_train)

Когда я хочу извлечь лучшую модель с gridCV_GBR.best_params_, у меня есть только результат для GridsearchCV:

{'MLPR__alpha': 0.001, 'MLPR__hidden_layer_sizes': (50,)}

Но я хочу, чтобы количество итераций MLPRegressor использовалось лучшей моделью gridCV_MLPR.

Как можно использовать атрибут n_iter_, разработанный для MLPRegressor(), через конвейер с GridsearhCV?


person rmarion37    schedule 09.08.2019    source источник
comment
А что насчет gridCV_MLPR.best_estimator_.n_iter_?   -  person desertnaut    schedule 09.08.2019
comment
С этим кодом у меня объект "Pipeline" не имеет атрибута "n_iter_". Это нормально, потому что .n_iter_ является атрибутом MLPregressor (). Что входит в конвейер (лучший, определенный GridsearchCV).   -  person rmarion37    schedule 09.08.2019


Ответы (1)


Спасибо за вашу помощь,

Я нашел решение:

gridCV_MLPR.best_estimator_.named_steps['MLPR'].n_iter_

Поскольку gridCV_MLPR.best_estimator_ является конвейером, нам нужно выбрать параметры MLPRegressor с помощью .named_steps['MLPR'].

Большое спасибо за очень-очень быстрый ответ ...

person rmarion37    schedule 09.08.2019
comment
Хорошая работа (+1); по истечении двухдневного периода не забудьте на самом деле принять свой ответ. - person desertnaut; 09.08.2019