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

Что такое несбалансированные данные?

Если классификация данных не равна, вы можете называть ее несбалансированными данными. Это классификационная задача и вызывает различные проблемы при выводе модели. Например, у вас есть 100 случаев проблемы с классификацией двоичных данных. Класс-1 включает 80 помеченных случаев. С другой стороны, оставшийся помеченный экземпляр будет относиться к Классу-2. Это будет простой пример несбалансированного набора данных. Соотношение экземпляров класса 1 и класса 2 будет 4:1.
Проблема дисбаланса классов очень распространена, независимо от того, говорите ли вы о реальных тестовых наборах данных или о соревновании Кагглов. Реальные проблемы классификации будут включать определенный уровень дисбаланса классификации. Обычно это происходит, когда нет подходящих экземпляров данных, которые подходят для любого класса. Поэтому важно выбрать правильную метрику оценки модели. Если модель имеет несбалансированный набор данных, ваш результат будет бесполезен. Однако, если вы решите реальную проблему с этой моделью, результат будет бесполезен.
В различных ситуациях классовый дисбаланс будет возникать всегда. Хороший пример – когда вы рассматриваете набор данных о мошеннических и недобросовестных операциях. Вы найдете меньше мошеннических операций, чем недобросовестных. Именно здесь вы столкнетесь с проблемами.

Что такое SMOTE?

SMOTE – это метод, который вы можете использовать для передискретизации данных. Эта техника создает новую синтетику вместо передискретизации путем замены. SMOTE вводит синтетические примеры в сегментах линии для передискретизации миноритарных отсчетов класса. Она объединяет все классы k-миноритариев, которые находятся близко к соседям. Выбор соседей k ближайших соседей случайен. Число зависит от количества передискретизации, необходимого модели.
Основной функцией SMOTE является построение классов миноритариев. Существует простой алгоритм построения этих классов. Как известно, разработка повторяющихся экземпляров или передискретизация может привести к передискретизации. Более того, граница принятия решения становится еще жестче. Проблему можно решить, сгенерировав похожие примеры, а не повторяя их все. SMOTE генерирует вновь построенные примеры, которые имеют отличные от предыдущих особенности. Таким образом, граница решения становится мягче. Это поможет алгоритму оценить точную гипотезу. Ниже вы найдете некоторые преимущества SMOTE:
– Информация не будет потеряна.
– Эта методика проста, ее можно легко интерпретировать и реализовать в модели.
– Она улучшает подгонку под синтетические примеры. Это поможет генерировать новые экземпляры вместо их повторения.

Как решить проблему несоответствия классов с помощью SMOTE?

SMOTE синтезирует новые миноритарные экземпляры аналогично реальным миноритарным экземплярам. Представьте, что между существующими экземплярами существует грань. SMOTE рисует эти строки для создания синтетических и новых миноритарных экземпляров на этих строках.
библиотека(smotefamily)
dat_plot = SMOTE(dat[,2:4], # значения функции
как.numeric(dat[,6]), # метки класса
K = 6, dup_size = 0) # параметры функции
После завершения процесса синтеза новых миноритарных экземпляров, вывод будет включать в себя меньший дисбаланс данных. Модель будет добавлять новые экземпляры с помощью SMOTE выравнивания классов.

Параметры функции SMOTE

Dup_size и K – два параметра SMOTE(). Если вы хотите понять Dup_size и K, то вам необходимо изучить рабочий механизм SMOTE(). SMOTE() будет работать через перспективы существующих экземпляров и генерировать новые экземпляры случайным образом. Функция создаст новый экземпляр на некотором расстоянии от соседнего экземпляра. Однако, до сих пор неясно, как SMOTE() рассматривает своих соседей для каждого создаваемого ими экземпляра-миллионника.
– Функция будет рассматривать ближайшего соседа при K = 1.
– При K = 2 функция будет рассматривать ближайшего и следующего соседей.
Обычно SMOTE() будет циклически перебирать исходный миноритарный экземпляр. В то время как итерация цикла является одиночным экземпляром, модель будет создавать новый экземпляр между исходным экземпляром и соседом. Параметр dup_size указывает, сколько раз функция SMOTE будет циклически перебирать исходный экземпляр. Например, при параметре dup_size = 1 модель будет синтезировать только четыре новых точки данных и так далее.

Заключение

При создании прогностической модели в машинном обучении вы можете столкнуться с несбалансированными наборами данных. Эти наборы данных могут повлиять на результат модели. Вы можете решить эту проблему путем передискретизации данных меньшинства. Поэтому вместо дублирования данных используйте технику SMOTE и создавайте синтетические данные для передискретизации. Ниже вы найдете некоторые вариации SMOTE:
– Borderline-SMOTE
– SMOTE-NC
– SMOTE
– ADASYN
– SVM-SMOTE