При фитинге с TPOT CV переоснащается ли fit_pipeline_ на весь набор данных? - PullRequest
0 голосов
/ 24 августа 2018

Я использую стратегию LeaveOutGroupOut CV с TPOTRegressor

from tpot import TPOTRegressor
from sklearn.model_selection import LeaveOneGroupOut

tpot = TPOTRegressor(
    config_dict=regressor_config_dict,
    generations=100,
    population_size=100,
    cv=LeaveOneGroupOut(),
    verbosity=2,
    n_jobs=1)

tpot.fit(XX, yy, groups=groups)

После оптимизации лучший обученный конвейер оценки сохраняется в tpot.fitted_pipeline_ и доступно tpot.fitted_pipeline_.predict(X).

мой вопрос: на чем будет проходить обучение оборудованный трубопровод?например,

  • выполняет ли преобразование оптимизированного конвейера tpot, используя весь набор данных, перед тем, как сохранить его в tpot.fitted_pipeline_?
  • , или это будет обученный конвейер из лучшего разбивки оценки во время

Кроме того, есть ли способ получить доступ к полному набору обученных моделей, соответствующих набору разбиений для выигрышного / оптимизированного конвейера?

1 Ответ

0 голосов
/ 24 августа 2018

TPOT будет соответствовать окончательному «лучшему» конвейеру на полном обучающем наборе: код

Поэтому рекомендуется, чтобы ваши данные тестирования никогда не передавались в функцию подбора TPOT, если вы планируетенапрямую взаимодействовать с «лучшим» конвейером через объект TPOT.

Если это проблема для вас, вы можете переобучить конвейер напрямую через атрибут tpot.fitted_pipeline_, который является просто объектом конвейера sklearn.Кроме того, вы можете использовать функцию export, чтобы экспортировать «лучший» конвейер в соответствующий ему код Python и взаимодействовать с конвейером вне TPOT.

Кроме того, есть способ получить доступ к полномунабор обученных моделей, соответствующих набору разбиений для выигрышного / оптимизированного конвейера?

Нет.TPOT использует cross_val_score от sklearn при оценке конвейеров, поэтому он отбрасывает набор обученных конвейеров из процесса CV.Однако вы можете получить доступ к результатам оценки каждого конвейера, который TPOT оценил через атрибут tpot.evaluated_individuals_.

...