Спринт 10/24 → Тема 5/11: Дисбаланс классов → Урок 1/8

Кратко:
  • Основной инструмент МО - это модели, а ключевой способ проверить их качество - это метрики.
  • Часто объектов одного класса значительно больше, чем других.
  • В этой теме вы поработаете с такими данными и узнаете, чем дисбаланс грозит модели и как учитывать его во время подготовки данных, обучения модели и оценки её качества.
  • Вы научитесь выявлять непропорционально представленные классы в датасете; решать проблему дисбаланса; проводить валидацию модели разными способами; выбирать метрики для оценки моделей, обученных на несбалансированных данных.
  • Шесть уроков по 30-40 минут

Спринт 10/24 → Тема 5/11: Дисбаланс классов → Урок 2/8

Кратко:
  • Дисбаланс классов влияет на качество обучения моделей и распознавание закономерностей.
  • Идеальное соотношение классов для бинарной классификации - 1:1.
  • Дисбаланс классов затрудняет обучение моделей и может быть вызван разными причинами.
  • Методы обнаружения дисбаланса классов включают анализ датасета с помощью библиотеки pandas.
  • Для проверки модели на адекватность можно использовать метод сравнения с моделью, всегда присваивающей мажорный класс.
  • Стратификация выборок помогает сохранить исходное соотношение классов в тренировочных и тестовых выборках.

КМ. Задача 1

КМ. Задача 2

КМ. Задача 3

Спринт 10/24 → Тема 5/11: Дисбаланс классов → Урок 3/8

Кратко:
  • Оверсэмплинг и андерсэмплинг - способы устранения дисбаланса классов в данных.
  • Оверсэмплинг увеличивает число объектов минорного класса, андерсэмплинг - уменьшает число объектов мажорного класса.
  • Для оверсэмплинга можно использовать стандартные методы работы с данными из pandas и класс RandomOverSampler из библиотеки imblearn.
  • Для синтеза новых данных нужны более сложные алгоритмы, такие как SMOTE, SMOTENC и ADASYN.
  • SMOTE и SMOTENC создают объекты на всем пространстве значений признаков, что может усложнить классификацию.
  • ADASYN синтезирует наблюдения только на границе классов, что упрощает классификацию.

КМ. Задача 1

КМ. Задача 2

КМ. Задача 3

Спринт 10/24 → Тема 5/11: Дисбаланс классов → Урок 4/8

Кратко:
  • В статье рассматриваются подходы к решению проблемы дисбаланса классов в данных.
  • Ручной андерсэмплинг: удаление объектов мажорного класса до баланса классов.
  • Автоматический андерсэмплинг с использованием библиотеки imblearn (RandomUnderSampler).
  • Смешанный подход: взвешивание классов моделью (SMOTETomek).
  • Метрики для оценки качества модели: F1-мера, ROC-AUC, Precision, Recall.
  • Сдвиг порога классификации для калибровки ошибок и улучшения метрик.
  • Экспериментирование и анализ значений метрик для выбора оптимального подхода.

КМ. Задача 1

Спринт 10/24 → Тема 5/11: Дисбаланс классов → Урок 5/8

Кратко:
  • Валидация в машинном обучении - проверка качества моделей и их настройка на валидационной выборке.
  • Валидационная выборка должна быть без пересечения данных, иначе корректная оценка качества невозможна.
  • При работе с дисбалансом классов, необходимо разделить данные на стратифицированные выборки.
  • Сэмплирование валидационной выборки может привести к завышенным оценкам качества.
  • Валидация моделей машинного обучения - проверка качества моделей на валидационной выборке и их настройка.

КМ. Задача 1

КМ. Задача 2

Спринт 10/24 → Тема 5/11: Дисбаланс классов → Урок 6/8

Кратко:
  • Кросс-валидация используется для проверки качества моделей на всех доступных данных, кроме отложенной тестовой выборки.
  • Во время кросс-валидации модель обучается и проверяется несколько раз, используя блоки данных в качестве валидационных выборок.
  • Количество циклов равно числу выделенных блоков, и в конце алгоритм кросс-валидации вычисляет среднее арифметическое значений метрик.
  • Стандартное отклонение оценок качества модели также полезно для оценки стабильности ее предсказаний на любых данных.

КМ. Задача 1

КМ. Задача 2

Спринт 10/24 → Тема 5/11: Дисбаланс классов → Урок 7/8

Кратко:
  • Метрики классификации и регрессии имеют разные цели и не могут быть использованы взаимозаменяемо.
  • В модуле sklearn.metrics представлены различные метрики для оценки качества моделей.
  • Создание пользовательских метрик может быть необходимо для учета уникальных показателей в задачах моделирования.
  • Функция make_scorer() в модуле sklean.metrics позволяет создавать пользовательские метрики на основе пользовательских функций.
  • При создании пользовательской метрики важно указать, увеличивается она или уменьшается при росте качества модели.
  • Пользовательские метрики могут использоваться для проверки моделей кросс-валидацией и адаптации моделей для новых задач.

КМ. Задача 1

Спринт 10/24 → Тема 5/11: Дисбаланс классов → Урок 8/8

Кратко:
  • Умение работать с несбалансированными данными.
  • Выявление дисбаланса классов и способы его решения.
  • Стратификация тренировочных данных и разные методы сэмплирования.
  • Выбор подхода к решению проблемы дисбаланса в зависимости от специфики задачи.
  • Валидация модели двумя способами: кросс-валидация и разделение данных на три выборки.
  • Выбор метрики для оценки моделей, обученных на несбалансированных данных.
  • Создание своей метрики при необходимости.
  • Шпаргалка по теме для быстрого запоминания информации.
Заключение

Теперь вы умеете работать с несбалансированными данными! Проблема дисбаланса для вас больше не проблема. Попутно вы освоили новые навыки для проверки качества моделей.

Чему вы научились

  • Выявлять дисбаланс классов. Как только вы получили данные, проверьте, сбалансированы ли они. Если вы обнаружите дисбаланс, сразу подумайте, как с ним лучше справиться. И не забудьте про стратификацию тренировочных данных!
  • Решать проблему дисбаланса. Главные способы — разные виды и методы сэмплирования, взвешивание классов и изменение порога классификации. Выбор подхода зависит от специфики задачи, выбранных модели и метрики, особенностей датасета. Пробуйте разные способы и не бойтесь экспериментов.
  • Проводить валидацию модели двумя способами. Вы узнали, как делить данные на три выборки, чтобы использовать одну из них для экспериментов с моделями и их настройками. Вы также овладели кросс-валидацией, она проверяет модель на 100% тренировочных данных и даёт более точную оценку качества.
  • Выбирать метрику для оценки моделей, обученных на несбалансированных данных. Каждая из них по-разному реагирует на дисбаланс классов, учитывайте это при проверке качества. Если ни одна готовая метрика не подходит — создайте свою функцией make_scorer().

Заберите с собой

Чтобы ничего не забыть, скачайте шпаргалку по теме.