Использование исправленного гиперпараметра при использовании RandomizedSeachCV из sklearn

#python #scikit-learn #gridsearchcv

#python #scikit-учиться #gridsearchcv

Вопрос:

Я использую модель классификатора случайного леса. После гипернастройки параметров точность для моего отрицательного класса составляет всего 0,51. Итак, чтобы улучшить мой показатель точности, я передаю scoring = precision_score и refit = ‘precision’ в моем алгоритме рандомизированного поиска CV. Однако, когда я проверяю наилучшую оценку, она показывает точно такую же оценку, как и раньше. Кто-нибудь может объяснить, почему это может происходить?

Вот фрагмент кода, который я использую:

 #Use precision

scorers = {'precision': make_scorer(precision_score)}

#Initialize RandomizedSearchCv

rfc_cv = RandomizedSearchCV(estimator = rfc, cv = 5, param_distributions=params_rfc, random_state=42, refit = 'precision', scoring= scorers)
  

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

1. проверьте cv_results_ ; возможно, 0.51 на самом деле лучший. Обратите внимание, однако, что precision_score дает точность положительного класса.

2. @BenReiniger вы знаете, что я должен использовать, чтобы получить точность отрицательного класса?

3. precision_score для этого есть параметр pos_label , и вы можете использовать kwargs of make_scorer , чтобы передать этот параметр в средство оценки.