У меня есть результаты машинного обучения, которые я не совсем понимаю. Я использую python sciki-learn с 2+ миллионами данных о 14 функциях. Классификация «ab» выглядит довольно плохо на кривой точности-отзыва, но ROC для Ab выглядит так же хорошо, как и классификация большинства других групп. Что это может объяснить?
Хорошая кривая ROC, но плохая кривая точности-отзыва
comment
Ваш сет сбалансирован? (то есть столько ab, сколько не ab)
- person Calimo   schedule 23.10.2015
comment
Нет, он очень несбалансирован, Ab меньше 2%
- person KubiK888   schedule 23.10.2015
comment
Ну вот. Попробуйте передискретизировать, чтобы смягчить проблему.
- person Calimo   schedule 23.10.2015
Ответы (1)
Классовый дисбаланс.
В отличие от кривой ROC, кривые PR очень чувствительны к дисбалансу. Если вы оптимизируете свой классификатор для получения хорошей AUC для несбалансированных данных, вы, вероятно, получите плохие результаты с точным отзывом.
person
Calimo
schedule
23.10.2015
Понятно, но что это на самом деле означает с точки зрения производительности теста? Это хорошо (на основе ROC) или плохо (на основе P-R)? Как тест может быть хорошим, если на приведенной выше кривой P-R лучшее, что он может сделать, составляет 40% как для точности, так и для отзыва?
- person KubiK888; 23.10.2015
Это означает, что вы должны быть осторожны, сообщая о выполнении теста с несбалансированными данными. В медицинских приложениях это может иметь ужасные последствия (см. Тестирование на СПИД в качестве примера из учебника), в других это может быть нормально, это действительно зависит от вашего конкретного приложения.
- person Calimo; 24.10.2015
Я не настраивал настройку по умолчанию, поскольку использую scikit learn, но, как вы сказали, кажется, что она оптимизируется на основе AUC, есть ли способ оптимизации на основе пары точности / отзыва в несбалансированных данных?
- person KubiK888; 25.10.2015
Вы должны опубликовать это как новый вопрос.
- person Calimo; 26.10.2015