Измените метод прогнозирования в python - PullRequest
0 голосов
/ 27 мая 2020

Я обучил свои данные в tpot, а затем написал функцию для оценки лучшего конвейера с разными показателями. Я хочу автоматизировать всю процедуру. Tpot вернет лучший конвейер, а затем будут рассчитаны разные метрики. Проблема в том, что иногда оптимальная модель не имеет метода «pred_proba», такого как ElasticNetCV или AdaBoostRegressor, тогда в моей функции оценки я должен разделить два разных метода прогнозирования. Что-то вроде:

if trained_model does have predict_proba:
     do sth
else trained_model does not have predict_proba
     do sth else

представьте себе такой код: обученная_модель - лучший конвейер из tpot

prob_test = trained_model.predict_proba(xtest)

если обученная_модель - «AdaBoostRegressor», тогда она возвращает ошибку:

'AdaBoostRegressor' object has no attribute 'predict_proba'

Это правда. Я пробовал использовать , а и , если , но ни один из них не работает. Я могу что-то здесь забыть.

1 Ответ

0 голосов
/ 27 мая 2020

Вы захотите использовать hasattr, чтобы проверить, есть ли функция:

if hasattr(trained_model, 'predict_proba'):
    return trained_model.predict_proba(...)
# otherwise do something else...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...