#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)