В этой статье мы увидим, что такое несбалансированный набор данных и как с этим справиться.

Во-первых, мы поймем, что такое несбалансированный набор данных.

Предположим, у нас есть набор данных о диабете, и мы должны предсказать, есть ли у пациента диабет или нет. В этом случае наш результат будет либо да, либо нет. Поскольку это проблема машинного обучения классификации, мы увидим два класса «Диабет» и «Не диабет» в нашей целевой или зависимой функции набора данных.

Предположим, у нас есть набор данных из 1000 пациентов, из которых 900 пациентов здоровы, не болеют диабетом, а 100 пациентов больны диабетом. Здесь ясно видно, что у нас есть класс большинства, то есть пациенты, у которых нет диабета, в 9 раз больше, чем класс меньшинства, то есть класс диабета. Такой тип набора данных, в котором один класс имеет гораздо большее большинство, чем другой класс, называется несбалансированным набором данных.

Наиболее распространенные примеры несбалансированных наборов данных:

  1. Обнаружение мошенничества с кредитными картами
  2. Спам по электронной почте
  3. Набор данных здравоохранения
  • Набор данных диабета
  • Набор данных о сердечных заболеваниях
  • Набор данных рака
  • Набор данных о заболеваниях печени
  • Набор данных о раке молочной железы
  • Набор данных прогнозирования инсульта
  • Набор данных о хронических заболеваниях почек

И многое другое…

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

Теперь давайте посмотрим, как мы можем справиться с несбалансированным набором данных.

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

Давайте посмотрим на некоторые методы передискретизации,

  1. Под выборкой

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

Давайте посмотрим на наш предыдущий пример с больными диабетом:

Импорт библиотеки NearMiss для Under Sampling, а затем подгонка независимых функций X и зависимых функций y.

from imblearn.under_sampling import NearMiss
nm = NearMiss()
X_us, y_us = nm.fit_resample(X,y)

После недостаточной выборки мы получим,

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

2. Излишняя выборка

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

Снова давайте посмотрим на наш предыдущий пример с больными диабетом:

Импорт библиотеки RandomOverSampler для избыточной выборки, а затем подгонка независимых функций X и зависимых функций y.

from imblearn.over_sampling import RandomOverSampler
ros = RandomOverSampler()
X_os, y_os = ros.fit_resample(X,y)

После перевыборки получим

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

3. УДАР

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

Применение SMOTE,

from imblearn.over_sampling import SMOTE
smote = SMOTE()
X_smote, y_smote = smote.fit_resample(X,y)

После SMOTE мы получим

4. СМОТЕТомек

SMOTETomek представляет собой комбинацию избыточной и недостаточной выборки с использованием ссылок SMOTE и Tomek.

from imblearn.combine import SMOTETomek
smotetomek = SMOTETomek()
X_smotetomek, y_smotetomek = smotetomek.fit_resample(X,y)

Ресурсы

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

Вывод

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

Пожалуйста, не стесняйтесь оставлять свои комментарии, советы или ошибки.😊

Свяжитесь со мной: LinkedIn | Гитхаб | Электронная почта

УДАЧИ ОБУЧЕНИЯ!!! ❤🥀