Переменная и параметр в методе

#python #machine-learning

#python #машинное обучение

Вопрос:

Я новичок в Python, и у меня возникла проблема с этим при создании функции:

Я создал словарь, в котором ключами являются такие параметры, как n_estimators , C , max_depths например.

У меня есть цикл, в котором я хотел бы задать параметры для заданной оценки (которая является входом моей функции), но у меня возникла проблема.

Например, предположим, что моя оценка является RandomForestClassifier ,

Код будет:

 key = 'n_estimators'
estimator = estimator.set_params(key=100)
  

Я получил сообщение об ошибке:

 ValueError: Invalid parameter key for estimator RandomForestClassifier.
  

Я понимаю проблему, которая заключается в том, что set_params рассматривает key как параметр (а не как «n_estimators»), но я пока не знаю, как решить проблему.

Я был бы очень признателен за любые советы здесь.

Ответ №1:

Используйте dict с ** оператором:

 key = 'n_estimators'
estimator = estimator.set_params(**{key: 100})
  

Ответ №2:

или вы знаете, просто

 estimator.set_params(n_estimators=100)
  

Комментарии:

1. Нет, я не могу, потому что я хочу обобщить свой метод для большего количества оценок, я просто привел пример с классификатором случайного леса. Но моим классификатором может быть, например, SVM.

Ответ №3:

Вы могли бы рассмотреть возможность использования GridSearchCV для оценки модели по нескольким значениям гиперпараметров и для разных гиперпараметров.