#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