Веса классов по сравнению с недостаточной / избыточной выборкой

#python #scikit-learn #classification #imblearn

#python #scikit-learn #классификация #imblearn

Вопрос:

В несбалансированной классификации (с помощью scikit-learn) в чем будет разница между балансировочными классами (т.Е. Установить class_weight на balanced) и передискретизацией с помощью SMOTE, например? Каковы будут ожидаемые эффекты одного по сравнению с другим?

Ответ №1:

Веса классов напрямую изменяют функцию потерь, предоставляя больший (или меньший) штраф классам с большим (или меньшим) весом. По сути, мы в основном жертвуем некоторой способностью предсказывать более низкий весовой класс (класс большинства для несбалансированных наборов данных), намеренно смещая модель в пользу более точных прогнозов более высокого взвешенного класса (класс меньшинства).

Методы избыточной выборки и недостаточной выборки по существу также придают больший вес определенным классам (дублирование наблюдений дублирует штраф за эти конкретные наблюдения, что дает им большее влияние на подгонку модели), но из-за разделения данных, которое обычно происходит при обучении, это также даст несколько иные результаты.

Пожалуйста, обратитесь к https://datascience.stackexchange.com/questions/52627/why-class-weight-is-outperforming-oversampling