В этой статье мы увидим, что такое несбалансированный набор данных и как с этим справиться.
Во-первых, мы поймем, что такое несбалансированный набор данных.
Предположим, у нас есть набор данных о диабете, и мы должны предсказать, есть ли у пациента диабет или нет. В этом случае наш результат будет либо да, либо нет. Поскольку это проблема машинного обучения классификации, мы увидим два класса «Диабет» и «Не диабет» в нашей целевой или зависимой функции набора данных.
Предположим, у нас есть набор данных из 1000 пациентов, из которых 900 пациентов здоровы, не болеют диабетом, а 100 пациентов больны диабетом. Здесь ясно видно, что у нас есть класс большинства, то есть пациенты, у которых нет диабета, в 9 раз больше, чем класс меньшинства, то есть класс диабета. Такой тип набора данных, в котором один класс имеет гораздо большее большинство, чем другой класс, называется несбалансированным набором данных.
Наиболее распространенные примеры несбалансированных наборов данных:
- Обнаружение мошенничества с кредитными картами
- Спам по электронной почте
- Набор данных здравоохранения
- Набор данных диабета
- Набор данных о сердечных заболеваниях
- Набор данных рака
- Набор данных о заболеваниях печени
- Набор данных о раке молочной железы
- Набор данных прогнозирования инсульта
- Набор данных о хронических заболеваниях почек
И многое другое…
Когда у нас есть несбалансированный набор данных и если мы строим модель машинного обучения на основе несбалансированных данных, существует высокая вероятность неправильной классификации, то есть неправильной классификации. Модель машинного обучения становится предвзятой и дает неточные результаты.
Теперь давайте посмотрим, как мы можем справиться с несбалансированным набором данных.
Повторная выборка — один из самых популярных методов обработки несбалансированного набора данных. Основная цель повторной выборки — сбалансировать набор данных либо за счет увеличения частоты класса меньшинства, либо за счет уменьшения частоты класса большинства.
Давайте посмотрим на некоторые методы передискретизации,
- Под выборкой
Под выборкой используется для уменьшения класса большинства путем случайного исключения класса большинства. Это делается до тех пор, пока экземпляры класса большинства и меньшинства не будут сбалансированы.
Давайте посмотрим на наш предыдущий пример с больными диабетом:
Импорт библиотеки 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 | Гитхаб | Электронная почта
УДАЧИ ОБУЧЕНИЯ!!! ❤🥀