Я работаю над проблемой бинарной классификации, где гораздо важнее не иметь ложных срабатываний; довольно много ложных негативов в порядке. Например, я использовал несколько классификаторов в sklearn, но я думаю, что ни один из них не имеет возможности явно регулировать компромисс между точностью и отзывом (они дают довольно хорошие результаты, но не могут быть изменены).
Какие классификаторы имеют регулируемую точность / отзыв? Есть ли способ повлиять на компромисс между точностью и отзывом на стандартные классификаторы, например, Random Forest или AdaBoost?
источник
precision_recall_curve
рассчитать весь F1. Как рассчитать только отрицательные?Я только что решил это для себя, прежде чем наткнуться на этот вопрос, поэтому я решил поделиться своим решением.
Он использует тот же подход, который предложил Марк Клазен, но отвечает на актуальный вопрос о том, как настроить классификатор, чтобы подняться выше по оси точности, торгуя вне отзыва.
X_test - это данные, а y_test - истинные метки. Классификатор должен быть уже установлен.
И это то, как вы будете использовать недавно изученный минимальный порог для корректировки вашего прогноза (который в противном случае вы бы просто получили, вызывая предикат (X_test))
Было бы здорово услышать ваши отзывы на этот рецепт корректировки.
источник
Вот функция
http://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html#sklearn.ensemble.RandomForestClassifier.predict_proba
который производит вероятности класса. Затем используйте различные метрики для настройки порога P, который вы используете при принятии решения, следуя псевдокоду
если p (y)> P, то y = 1, иначе y = 0 endif
источник