Экспериментирую с ML. Несколько недель ковыряюсь в данных и всё больше понимаю — алгоритмы это не главное. Главная боль — подготовка данных.
Уже несколько недель разбираюсь с машинным обучением. Не ради статьи на Смартлабе — захотелось понять, как это устроено изнутри. И чем глубже погружаюсь, тем больше понимаю: вся «магия» моделей начинается задолго до самого обучения.
Собрать данные — не проблема. Подготовить их — проблема. И особенно сложно — сбалансировать классы.
Когда модель учится отличать категории, она должна видеть их примерно в равных долях. Если один класс встречается гораздо чаще других, модель быстро «разучивается думать» и начинает просто угадывать самый частый вариант. В итоге вроде бы всё обучилось, но результат — в мусорку.
На практике это выглядит так:
- один класс (нейтральный) встречается чуть ли не в половине всех примеров,
- другие (позитивный и негативный) — заметно реже,
- при этом удалить лишние примеры нельзя вслепую — можно потерять важный контекст и сместить распределение признаков.
После долгих экспериментов и отбраковки однотипных записей я получил такую картину:

Выглядит вроде бы прилично, но за этими цифрами — десятки вариантов фильтрации, пересемплирования и чистки.
Главная проблема — нейтральные примеры. Их очень много, и именно они чаще всего «смазывают» сигналы в данных.
Удалить слишком много — модель потеряет способность видеть естественные переходные состояния.
Удалить слишком мало — она начнёт всё считать нейтральным.
Это в продолжение темы.
Поэтому подбор баланса — это не механическая операция, а прямо сложно.
Ведь машинное обучение — это не про «нажал кнопку и получил результат» как в ChatGPT. Это скорее про методичное, почти исследовательское выравнивание весов, классов и смыслов.
Если кто-то тоже бьётся с дисбалансом классов — делитесь опытом в комментариях.
Особенно интересны реальные кейсы, где удалось найти золотую середину между балансом и сохранением репрезентативности данных.
Автор:
Михаил Шардин
🔗 Моя онлайн-визитка
📢 Telegram «Умный Дом Инвестора»
17 октября 2025
рискнул бы не согласиться с тезисом о неважности алгоритмов
взять хотя бы вчерашний день
из-за произошедших событий придется заново обучать некоторые алгоритмы, хотя другие демонстрируют поразительную стойкость к такого рода явлениям, при этом все используют почти один и тот же входной набор данных
но, кажется мне, что даже новое переобучение не поможет… а вот почему не поможет, — это надо сильно подумать