У меня есть набор данных в виде (функции, двоичный вывод 0 или 1), но 1 случается довольно редко, поэтому, всегда прогнозируя 0, я получаю точность от 70% до 90% (в зависимости от конкретных данных, на которые я смотрю ). Методы ML дают мне примерно одинаковую точность, и я считаю, что в этой ситуации должны быть некоторые стандартные методы, которые позволили бы повысить точность по сравнению с очевидным правилом прогнозирования.
52
Ответы:
Оба hxd1011 и Фрэнк правы (+1). По сути, повторная выборка и / или обучение с учетом затрат являются двумя основными способами решения проблемы несбалансированных данных; третье - использовать методы ядра, которые иногда могут быть менее подвержены дисбалансу классов. Позвольте мне подчеркнуть, что не существует решения для серебряной пули. По определению у вас есть один класс, который неадекватно представлен в ваших выборках.
Сказав выше, я считаю, что вы найдете алгоритмы SMOTE и ROSE очень полезными. SMOTE эффективно использует подход ближайших соседей, чтобы исключить членов класса большинства, аналогичным образом создавая синтетические примеры класса меньшинства. ROSE пытается создать оценки базовых распределений двух классов, используя сглаженный метод начальной загрузки, и сэмплировать их для синтетических примеров. Оба легко доступны в R, SMOTE в пакете DMwR и ROSE в пакете с тем же именем . И SMOTE, и ROSE приводят к тому, что обучающий набор данных меньше исходного.k
Вероятно, самая популярная недавняя статья по этому вопросу - « Изучение несбалансированных данных » Хэ и Гарсиа. Это дает очень хороший обзор вопросов, поднятых мной и другими ответами. Кроме того, я считаю, что пошаговое руководство по субсэмплингу для дисбалансов классов , представленное Максом Куном как часть пакета каретки , является отличным ресурсом, чтобы получить структурный пример того, как недостаточная / избыточная выборка, а также создание синтетических данных могут измерять друг против друга.
источник
Во-первых, метрика оценки для несбалансированных данных не будет точной. Предположим, вы обнаруживаете мошенничество, и 99,9% ваших данных не являются мошенничеством. Мы можем легко сделать фиктивную модель с точностью 99,9%. (просто предсказать все данные без мошенничества).
Вы хотите изменить метрику оценки с точности на что-то другое, например, на оценку F1 или точность и отзыв . Во второй ссылке я предоставил. Есть детали и интуиция о том, почему точный отзыв будет работать.
Для сильно несбалансированных данных построение модели может быть очень сложным. Вы можете играть с функцией взвешенных потерь или моделировать только один класс. например, один класс SVM или подходящий многовариантный гауссиан (как ссылка, которую я предоставил ранее.)
источник
Проблемы дисбаланса класса могут быть решены с помощью обучения с учетом затрат или повторной выборки. Смотрите преимущества и недостатки чувствительного к стоимости обучения по сравнению с выборкой , см. Ниже:
{1} дает список преимуществ и недостатков чувствительного к стоимости обучения по сравнению с выборкой:
Они также провели серию экспериментов, которые не дали результатов:
Затем они пытаются понять, какие критерии в наборах данных могут указывать на то, какой метод лучше подходит.
Они также отмечают, что SMOTE может принести некоторые улучшения:
{1} Вайс, Гари М., Кейт Маккарти и Биби Забар. «Чувствительное к затратам обучение по сравнению с выборкой: что лучше всего подходит для обработки несбалансированных классов с неравной стоимостью ошибок?». DMIN 7 (2007): 35-41. https://scholar.google.com/scholar?cluster=10779872536070567255&hl=en&as_sdt=0,22 ; https://pdfs.semanticscholar.org/9908/404807bf6b63e05e5345f02bcb23cc739ebd.pdf
источник
Несколько ответов на этот запрос уже предоставили несколько разных подходов, все они действительны. Это предложение взято из статьи и связанного с ней программного обеспечения Гэри Кинга, известного политолога из Гарварда. Он является соавтором статьи под названием « Логистическая регрессия в данных о редких событиях», в которой представлены некоторые довольно убедительные решения.
Вот тезисы:
Вот ссылка на статью ... http://gking.harvard.edu/files/abs/0s-abs.shtml
источник
Разработка классификаторов для наборов данных с несбалансированными классами является распространенной проблемой в машинном обучении. Методы, основанные на плотности, могут иметь существенные преимущества перед «традиционными классификаторами» в такой ситуации.
Вы можете обратиться к следующей статье:
«Вычисляемый оценщик подключаемых модулей минимальных наборов громкости для обнаружения новизны», C. Park, J. Huang and Y. Ding, Operations Research, 58 (5), 2013.
источник
Это проблема, когда обнаружение аномалий является полезным подходом. Это в основном то, что Родриго описал в своем ответе, в котором вы определяете статистический профиль вашего учебного класса и устанавливаете порог вероятности, после которого определяется, что будущие измерения не принадлежат этому классу. Вот видеоурок , с которого вы должны начать. Как только вы это освоите, я бы порекомендовал посмотреть оценку плотности ядра.
источник