несбалансированная классификация с использованием недостаточной и избыточной дискретизации с использованием pytorch python

#python #pytorch #imbalanced-data #smote

Вопрос:

Я хочу использовать передискретизацию и методы выборки вместе У меня есть 6 классов с количеством выборок следующим образом: класс 0 250000 класс 1 48000 класс 2 40000 класс 3 38000 класс 4 35000 класс 5 7000 Я хочу использовать smot, чтобы все классы были сбалансированы и имели одинаковый размер класс 0 40000 класс 1 40000 класс 2 40000 класс 3 40000 класс 4 40000 класс 5 40000 Я знаю, как сделать передискретизацию или недискретизацию для всех данных, но как использовать их вместе с классификацией нескольких классов

Комментарии:

1. Вы проверили реализацию SMOTE с помощью «несбалансированного обучения»? Документы для модели

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

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

Ответ №1:

Я пробую это

 ros = RandomUnderSampler()
X, y=ros.fit_resample(mydata, labels)
strategy = {0:40000, 1:40000, 2:40000, 3:40000, 4:40000, 5:40000}
over = SMOTE(sampling_strategy=strategy)
X, y=over.fit_resample(X, y)