Как настроить метрику для GridSearchCV в Scikit Научиться настраиваться на определенный класс? - PullRequest
0 голосов
/ 27 октября 2019

У меня есть сценарий использования в ML, где у меня есть 2 класса, 0 и 1 для данного текста.

  • Class-0: Могу позволить себе некоторые неправильные классификации
  • Class-1: Очень важно, не могу допустить ошибочных классификаций

Существует огромный дисбаланс в выборках для обоих классов, около 30000 для класса-0 и только 1000 для класса-1

Выполняя разделение теста на поезд, я стратифицирую разделение на основе меток, так что для каждого класса меток сохраняется соотношение 70% теста и 30% теста.

Я хочу настроить параметрытаким образом, что Precision или Recall для класса 1 улучшается. Я пытался использовать «f1_macro», «точность», «отзыв» в качестве отдельных метрик и все вместе, а также для настройки с помощью GridSearchCV, но это менее полезно из-за того, что большинство выборок относятся к классу-0.

Я исследуюболее безопасные способы сокращения данных класса 0, хотя мы можем уменьшить лишь небольшую степень, в любом случае, даже без настройки или с какими-либо параметрами, класс 0 всегда имеет более 98% f1-балла.

Так что все, что язабота о настройке относится к class-1.

Можете ли вы предложить, возможно, настроенную вызываемую метрику так, чтобы она фокусировалась только на точности, отзыве или F1-классе класса-1?

I 'используя последнюю стабильную версию scikit-learn.

Похожая проблема. Автор пытается настроить оценку класса 1 с помощью Neural Networks (MLP) в Keras
. Было предложено попробовать настроитьметрика, просто не упомянул как.
Тот, кто может ответить здесь за Scikit-Learn, также может ответить ниже по ссылке для Keras. Настройка гиперпараметра в Keras (MLP) через RandomizedSearchCV

1 Ответ

0 голосов
/ 28 октября 2019

Использование class_weight='balanced' помогает здесь.

Я ссылался на эти статьи на официальных страницах документации Scikit-Learn.

Понимание того, как работает параметр class_weights:
https://scikit -learn.org / stable / modules / svm.html # unbalanced-problem https://stackoverflow.com/a/30982811/3149277

Понимание того, какие параметры использовать для class_weights:
https://scikit -learn.org/stable/modules/svm.html#tips-on-practical-use
Как работает параметр class_weight в scikit-learn?

Хотя,из-за ограничений по времени я не удосужился определить пользовательскую функцию, поскольку она, казалось, работала в соответствии с моими ожиданиями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...