Практики машинного обучения обрабатывают данные, чтобы создать наилучшие обучающие наборы данных для своих моделей. Как правило, это означает, что данные непредвзяты, хорошо структурированы и помогут обучить модель, обеспечивающую хорошую прогностическую эффективность в реальном мире.

Независимо от того, собираете ли вы данные из реального мира самостоятельно, используете существующий набор данных или используете существующую обученную модель в рамках переносного обучения, базовые данные могут содержать врожденные погрешности, которые приводят к субоптимальным, несбалансированным данным. .

Короче говоря, несбалансированный набор данных содержит много данных для одной или нескольких конкретных классификаций (называемых классами большинства) и мало данных для других (классов меньшинства). Это может быть вызвано проблемами со сбором данных или неотъемлемым характером самих данных. Например, рассмотрим набор данных, содержащий изображения действительных и мошеннических форм страховых требований для использования в классификации изображений. Поскольку подавляющее большинство утверждений, вероятно, являются действительными, большинство изображений будут представлять действительные утверждения (классы большинства), в то время как очень немногие будут представлять мошеннические утверждения (классы меньшинства).

Использование подобных несбалансированных данных для обучения может повлиять на прогностическую эффективность обученной модели из-за плохого обобщения (т. е. неспособности точно классифицировать данные реального мира), переоснащения и недообучения. Это происходит потому, что алгоритм становится смещенным к большинству классов и на самом деле не учится различать шаблоны, необходимые для того, чтобы отличить их от меньшинства. И поскольку мы часто оцениваем производительность моделей ML на основе их точности, это приводит к парадоксу точности, то есть точность модели становится основанной на базовом (несбалансированном) распределении классов, а не на изученном шаблоне дифференциации, и, таким образом, кажется лучше, чем есть на самом деле.

Прежде чем работать с данным набором данных, рекомендуется сначала определить, действительно ли он несбалансирован. Например, такие инструменты, как scikit-learn, могут помочь вам получить первое представление о ваших данных. Как только вы узнаете, что у вас есть дисбаланс данных, вы можете предпринять несколько подходов, чтобы смягчить его.

Перебалансировка данных

Практики машинного обучения иногда могут преодолевать несбалансированные данные, создавая более сбалансированные наборы данных. Вот несколько наиболее распространенных подходов:

  • Создание синтетических данных: проще говоря, это включает в себя создание новых выборок данных для недостаточно представленных классов/классов меньшинств, часто основывая новые выборки на существующих данных.
  • Увеличение данных: аналогично методу создания синтетических данных, увеличение данных создает новые выборки данных путем копирования и изменения существующих недостаточно представленных классов/классов меньшинства. Этот подход использовался в нашем случае Классификация пятен на ткани, где мы применяли случайные повороты и вертикальные/горизонтальные перевороты для создания новых изображений.
  • Удалить выборки из перепредставленных классов: если у вас достаточно большой набор данных, вы можете просто удалить некоторые перепредставленные выборки, чтобы выровнять числа. Этот подход был использован в нашем сценарии использования ОКТ сетчатки глаза, где исходный набор данных содержал более 80 000 изображений, и мы смогли уменьшить количество образцов до 4000 на классификацию, имея при этом достаточно большой набор данных.
  • Собрать больше данных: это может показаться очевидным, но иногда вам просто нужно получить больше данных. Это может включать процессы ручного сбора, объединение нескольких наборов данных (например, данных, собранных с датчиков) или дополнение ваших существующих данных наборами данных с открытым исходным кодом в Интернете. Ознакомьтесь с 5 лучшими наборами данных с открытым исходным кодом PerceptiLabs для машинного обучения для некоторых рекомендуемых онлайн-источников.

Мыслить по-другому

Когда ваша ситуация требует от вас работы с несбалансированным распределением данных, стоит посмотреть на проблему по-другому.

Возьмем приведенный выше пример обнаружения страхового мошенничества. Вместо того, чтобы рассматривать это как проблему бинарной классификации (т. е. классифицировать действительные заявления против мошеннических), вы можете вместо этого рассматривать это как проблему обнаружения аномалий. . Имея это в виду, вы можете перераспределять данные по-новому, например, по разным типам мошенничества, и в то же время сокращать количество выборок данных для действительных требований. Такая стратегия может затем привести к новым распределениям, новым моделям и, возможно, новому пониманию данных.

Не запутайтесь

При обучении моделей с несбалансированными наборами данных лучше не оценивать эти модели только по точности. Одним из удобных инструментов, которые вы можете использовать, является матрица путаницы Perceptilabs, как показано на рисунке 1:

Матрица путаницы позволяет сразу увидеть, как спрогнозированные классификации сравниваются с фактическими классификациями на уровне каждого класса. Он доступен на экране тестирования модели Perceptilabs после того, как вы полностью обучили свою модель. Perceptilabs дополняет стандартную матрицу путаницы, отображая цвета, представляющие сравнения. Цвета соответствуют количеству образцов, которые классифицируются как то или иное. Например, если у вас много выборок для одного класса и мало для другого, то у вас несбалансированный тестовый набор данных. Если образцы не расположены по диагонали, то они ошибочно классифицируются как другой класс, что позволяет легко увидеть, имеет ли какой-либо класс лучшую классификацию, чем любой другой. Вы можете увидеть матрицу путаницы, используемую в нашем примере использования Обнаружение дефектных таблеток, где она отображает ложные срабатывания и ложные отрицания.

PerceptiLabs также отображает ряд полезных показателей меток справа от матрицы, которые могут помочь в дальнейшем объяснении результатов:

  • Категорическая точность: точность для каждой категории, усредненная по всем им.
  • Top K Категориальная точность: частота правильной категории среди первых K предсказанных категорий.
  • Точность: точность положительных прогнозов.
  • Отзыв: процент найденных положительных результатов (т. е. не ошибочно классифицированных как отрицательные, а не положительные).

Точность и Отзыв часто более показательны, чем точность, и, как правило, вы хотите, чтобы оба параметра были как можно выше. Они помогают найти как можно больше классов, которые правильно классифицированы, как можно чаще.

Вы можете использовать эти инструменты, чтобы лучше оценить свою модель и получить более глубокое представление о том, как она обрабатывает несбалансированные данные. Оттуда вы можете принимать решения о том, как двигаться дальше с вашей моделью.

Дополнительные инструменты

PerceptiLabs позволяет легко экспериментировать с различными моделями даже при обучении с неоптимальными несбалансированными наборами данных. Наш визуальный интерфейс позволяет вам легко перетаскивать различные компоненты в свой режим, чтобы изменить его, а наша богатая статистика и тестовые представления предоставляют вам обширную информацию о производительности модели в режиме реального времени. И во многих случаях достаточно просто обновить гиперпараметры (например, размер партии, смещение и т. д.) в пользовательском интерфейсе PerceptiLabs или поменять местами различные компоненты нейронной сети.

Другой вариант — использовать обучение в ансамбле, создавая две параллельные модели в рабочей области PerceptiLabs, а затем объединяя их вместе в один выход в Цели модели. Хотя ансамблевое обучение не помогает напрямую с несбалансированными наборами данных, оно может помочь сделать модель более надежной и, как мы надеемся, уменьшить переоснащение.

И не забывайте, что Model Hub PerceptiLabs упрощает создание, обучение и сравнение нескольких моделей. Это может быть полезно для сравнения результатов, таких как результаты, предоставленные матрицей путаницы и тестовыми метриками.

Для получения дополнительной информации о PerceptiLabs ознакомьтесь с документами и начните работу уже сегодня!