Как решить задачу классификации в дисбалансном датасете через поиск аномалии?
Проблема такая: классы, которые надо предсказывать, в реальной жизни (тестовом сете) имеют дикий дисбаланс: 99% против 1%.
Тренировочный сет имеет 350к записей класса-меньшинства и 13 миллионов записей класса-большинства.
Идеально нужно получить модель, которая может предсказать меньшинство с precision >=90% и recall'ом более 50%. Как такого достичь, и как задачу вообще решить?
Сколько данных большинства использовать? Применять ли SMOTE к меньшинству (я отказываюсь от этого, т.к. данные в меньшинстве обозначают две противоположные друг другу крайности: условно, класс большинства - это 0, а данные из класса меньшинства - это -1 и 1)? Какой объем данных из большинства брать (больше, чем с тремя миллионами память отказывается работать)? Какие алгоритмы брать (пробовал разные ensemble алгоритмы, SVM и т.д., но результаты у всего одинаковые)?
Как бы вы решали эту задачу? Есть ли какие-то необычные, но мощные техники в достижении таких точности и отзыва?
Спасибо, но решению это не помогает. Я это все читал, все пробовал. Есть даже соревнование на Kaggle - https://www.kaggle.com/competitions/anomaly-class-... - и больше 20% точности 30% реколла никто для класса-меньшинства не достиг пока что.
Странно, если вы все это читали, все(?!) перепробовали (!), даже знаете про максимальною точность, которую удалось достигнуть на Kaggle (хотя что-либо предсказывать на Форекс или бирже - само по себе занятие очень сомнительное в виду особенностей природы соответствующих временных рядов, но то такое) - и вдруг задаете на Хабре вопрос, а кто может лучше, или кто обладает тайными знаниями, неведомыми мировому сообществу. Интересный подход. Удачи в поиске.
P.S. Судя по вопросу, все-таки смею предположить, что вы либо не все читали, либо не во всем разобрались. На самом деле - не все так трагично, иначе не удавалось бы работать ни с теми самыми мошенничествами в банке, ни с диагностикой в медицине (ваши 350K против 13000К - это примерно 1:30. В медицине при постановке диагнозов некоторых болезней все куда грустнее, 1:100 и даже 1:1000 никого не удивишь, и нечего, работают и довольно успешно в последние годы.), ни с выявлением вторжений в компьютерных сетях, где дисбаланс еще круче, ни в том-же маркетинге, где отношение купивших к некупившим иногда измеряется долями процента. В любом случае - решения есть и они работают. Только вот надо разобраться и самому найти тот, который подойдет именно к вашему датасету, учитывая его природу и особенности. Тут уж вам никто не поможет. А шанс найти чудо-мега-крутые технологии путем опроса заседателей Хабр - вот он точно мизерный.
Удачи!
Да, что-то я пропустил. Вот порылся в своих архивах: https://neurohive.io/ru/novosti/metod-klassifikaci...
Разработан новый алгоритм классификации без отрицательных данных в датасете.
Это покруче, чем ваши 3% или даже 1%.
Чем не " необычная но мощная техника"?
Я бы для начала сбалансирован набор до 50/50%. Если на таком балансе достигаются приемлемые результаты но на исходном балансе модель не даёт приемлемых результатов - дообучать модель постепенно меняя баланс к необходимому.