Comments 6
Как-то подозрительно сильно у вас метрики улучшаются при оверсемплинге. Я код ещё не смотрел, но вангую утечку данных. Типа того, что вы предсказываете, по крайней мере частично, те же сэмплы, на которых обучались. Для сложных моделей я другого объяснения не вижу. Не бывает такого халявного улучшения метрик. Сложные модели почти всё что можно из данных и так выжимают.
P.S. CatBoostRepressor, конечно, нигде кроме вашей статьи не гуглится. Забавно получилось.
Я посмотрел код. Всё как я и думал. Сначала вы делаете оверсемплинг, а потом уже делите выборку на трейн и тест. Естественно, при таком подходе в тест попадают размноженные образцы из трейна. Скор чудесным образом улучшается. Только вот в реальной жизни у вас не будет в трейне сэмплов того, что нужно предсказать. Поэтому сначала делайте деление на трейн и тест, а потом уже оверсемплите трейн. После чего скорее всего выяснится, что оверсемплинг скор не улучшает. И хорошо если не ухудшает.
Соглашусь с тем, что в отличии от классификации с выравниванием баланса классов, качество модели не улучшается за счет оверсемплинга. Добавлял данные вживую в numpy, GaussianMixture и SMOTE Поэтому публикация в ближайшее время будет доработана. Спасибо.
Для простых моделей выравнивание баланса классов за счёт оверсемплинга менее представленных классов может сработать в плюс, да. Но именно для простых. Сложные модели обычно хорошо учитывают баланс классов "из коробки", дисбаланс классов, даже сильный, им не мешает. Насчёт GaussianMixture я не в курсе, а алгоритм SMOTE
, мне кажется, также бесполезен, как оверсемплинг. А то и вреден, потому что он генерит нереалистичные образцы данных. Но, опять же, возможно для простых моделей он может быть и полезен
Но главное - вы не выстроили схему валидации, поэтому пропустили утечку данных. Sanity check
на отложенной выборке уже бы показал, что что-то тут не так. Хотя, конечно, правильно сделать отложенную выборку, когда делаются какие-то сложные преобразования фич, не всегда просто. Всегда есть соблазн сначала сделать преобразования, а потом уже отложенную выборку. Потому что бывает сложно преобразовать отложенные данные также правильно, как и основные, если их сразу отложить.
Эффективность моделей определяется только практикой, поэтому в ближайшее время сделаем на базе предобученной модели (на данных прошлых периодов) сделаем прогон по новым вышедшим фильмам, результат которых уже известен, но которые не включались ни в тренинговую, ни в тестовую выборку. Соответственно, "утечка данных" исключена. И если с классификацией я не думаю, что общая точность/правильность (которая accuracy) упадет намного меньше 0,9, то вот с данными по итогам регрессии будет, естественно, посложнее. 30% российской кинопродукции - не просто непрозрачная, но темная зона.
Голливудская бухгалтерия.
И до свидания все инвестиции
Кино, финансы и data science