Спринт 10/24 → Тема 5/11: Дисбаланс классов → Урок 1/8
Кратко:
- Основной инструмент МО - это модели, а ключевой способ проверить их качество - это метрики.
- Часто объектов одного класса значительно больше, чем других.
- В этой теме вы поработаете с такими данными и узнаете, чем дисбаланс грозит модели и как учитывать его во время подготовки данных, обучения модели и оценки её качества.
- Вы научитесь выявлять непропорционально представленные классы в датасете; решать проблему дисбаланса; проводить валидацию модели разными способами; выбирать метрики для оценки моделей, обученных на несбалансированных данных.
- Шесть уроков по 30-40 минут
Спринт 10/24 → Тема 5/11: Дисбаланс классов → Урок 2/8
Кратко:
- Дисбаланс классов влияет на качество обучения моделей и распознавание закономерностей.
- Идеальное соотношение классов для бинарной классификации - 1:1.
- Дисбаланс классов затрудняет обучение моделей и может быть вызван разными причинами.
- Методы обнаружения дисбаланса классов включают анализ датасета с помощью библиотеки pandas.
- Для проверки модели на адекватность можно использовать метод сравнения с моделью, всегда присваивающей мажорный класс.
- Стратификация выборок помогает сохранить исходное соотношение классов в тренировочных и тестовых выборках.
Спринт 10/24 → Тема 5/11: Дисбаланс классов → Урок 3/8
Кратко:
- Оверсэмплинг и андерсэмплинг - способы устранения дисбаланса классов в данных.
- Оверсэмплинг увеличивает число объектов минорного класса, андерсэмплинг - уменьшает число объектов мажорного класса.
- Для оверсэмплинга можно использовать стандартные методы работы с данными из pandas и класс RandomOverSampler из библиотеки imblearn.
- Для синтеза новых данных нужны более сложные алгоритмы, такие как SMOTE, SMOTENC и ADASYN.
- SMOTE и SMOTENC создают объекты на всем пространстве значений признаков, что может усложнить классификацию.
- ADASYN синтезирует наблюдения только на границе классов, что упрощает классификацию.
Спринт 10/24 → Тема 5/11: Дисбаланс классов → Урок 4/8
Кратко:
- В статье рассматриваются подходы к решению проблемы дисбаланса классов в данных.
- Ручной андерсэмплинг: удаление объектов мажорного класса до баланса классов.
- Автоматический андерсэмплинг с использованием библиотеки imblearn (RandomUnderSampler).
- Смешанный подход: взвешивание классов моделью (SMOTETomek).
- Метрики для оценки качества модели: F1-мера, ROC-AUC, Precision, Recall.
- Сдвиг порога классификации для калибровки ошибок и улучшения метрик.
- Экспериментирование и анализ значений метрик для выбора оптимального подхода.
Спринт 10/24 → Тема 5/11: Дисбаланс классов → Урок 5/8
Кратко:
- Валидация в машинном обучении - проверка качества моделей и их настройка на валидационной выборке.
- Валидационная выборка должна быть без пересечения данных, иначе корректная оценка качества невозможна.
- При работе с дисбалансом классов, необходимо разделить данные на стратифицированные выборки.
- Сэмплирование валидационной выборки может привести к завышенным оценкам качества.
- Валидация моделей машинного обучения - проверка качества моделей на валидационной выборке и их настройка.
Спринт 10/24 → Тема 5/11: Дисбаланс классов → Урок 6/8
Кратко:
- Кросс-валидация используется для проверки качества моделей на всех доступных данных, кроме отложенной тестовой выборки.
- Во время кросс-валидации модель обучается и проверяется несколько раз, используя блоки данных в качестве валидационных выборок.
- Количество циклов равно числу выделенных блоков, и в конце алгоритм кросс-валидации вычисляет среднее арифметическое значений метрик.
- Стандартное отклонение оценок качества модели также полезно для оценки стабильности ее предсказаний на любых данных.
Спринт 10/24 → Тема 5/11: Дисбаланс классов → Урок 7/8
Кратко:
- Метрики классификации и регрессии имеют разные цели и не могут быть использованы взаимозаменяемо.
- В модуле sklearn.metrics представлены различные метрики для оценки качества моделей.
- Создание пользовательских метрик может быть необходимо для учета уникальных показателей в задачах моделирования.
- Функция make_scorer() в модуле sklean.metrics позволяет создавать пользовательские метрики на основе пользовательских функций.
- При создании пользовательской метрики важно указать, увеличивается она или уменьшается при росте качества модели.
- Пользовательские метрики могут использоваться для проверки моделей кросс-валидацией и адаптации моделей для новых задач.
Спринт 10/24 → Тема 5/11: Дисбаланс классов → Урок 8/8
Кратко:
- Умение работать с несбалансированными данными.
- Выявление дисбаланса классов и способы его решения.
- Стратификация тренировочных данных и разные методы сэмплирования.
- Выбор подхода к решению проблемы дисбаланса в зависимости от специфики задачи.
- Валидация модели двумя способами: кросс-валидация и разделение данных на три выборки.
- Выбор метрики для оценки моделей, обученных на несбалансированных данных.
- Создание своей метрики при необходимости.
- Шпаргалка по теме для быстрого запоминания информации.
Заключение
Теперь вы умеете работать с несбалансированными данными! Проблема дисбаланса для вас больше не проблема. Попутно вы освоили новые навыки для проверки качества моделей.
Чему вы научились
- Выявлять дисбаланс классов. Как только вы получили данные, проверьте, сбалансированы ли они. Если вы обнаружите дисбаланс, сразу подумайте, как с ним лучше справиться. И не забудьте про стратификацию тренировочных данных!
- Решать проблему дисбаланса. Главные способы — разные виды и методы сэмплирования, взвешивание классов и изменение порога классификации. Выбор подхода зависит от специфики задачи, выбранных модели и метрики, особенностей датасета. Пробуйте разные способы и не бойтесь экспериментов.
- Проводить валидацию модели двумя способами. Вы узнали, как делить данные на три выборки, чтобы использовать одну из них для экспериментов с моделями и их настройками. Вы также овладели кросс-валидацией, она проверяет модель на 100% тренировочных данных и даёт более точную оценку качества.
- Выбирать метрику для оценки моделей, обученных на несбалансированных данных. Каждая из них по-разному реагирует на дисбаланс классов, учитывайте это при проверке качества. Если ни одна готовая метрика не подходит — создайте свою функцией
make_scorer().
Заберите с собой
Чтобы ничего не забыть, скачайте шпаргалку по теме.