#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 ofmake_scorer
, чтобы передать этот параметр в средство оценки.