Для задачи классификации, если переменная класса имеет неравномерное распределение, какой метод мы должны использовать?


10

например если у меня есть переменная кредитного скоринга класса с двумя классами хороший и плохой, где # (хорошо) = 700 и # (плохо) = 300. Я не хочу сокращать свои данные. какую технику я должен использовать? Я использовал SVM, но он дает плохие прогнозы.


Эта асимметрия выглядит не так плохо; Вы уверены, что у вас нет ошибки где-то еще? Также можете ли вы дать более подробную информацию о данных? Там нет общего решения этого.

мой набор данных имеет 17 предикторов (3 непрерывных и 14 категориальных), очевидно, 1 переменная класса, и всего 1000 наблюдений. Частота расст. для класса вар. с поездом и тестом - поезд (плохо) = 197, тест (плохо) = 103, триан (хорошо) = 446, тест (хорошо) = 254
asad.taj

Ответы:


6

Размеры выборки вашего класса не кажутся такими несбалансированными, поскольку у вас 30% наблюдений в вашем классе меньшинства. Логистическая регрессия должна быть эффективной в вашем случае. В зависимости от количества предикторов, которые входят в вашу модель, вы можете рассмотреть некоторые виды штрафов за оценку параметров, такие как гребень (L2) или лассо (L1). Обзор проблем с очень несбалансированным классом см. В Cramer (1999), The Statistician, 48: 85-94 ( PDF ).

Я не знаком с методами кредитного скоринга, но нашел некоторые документы, в которых предлагается, чтобы вы могли использовать SVM с взвешенными классами, например, машины опорных векторов для кредитного скоринга: расширение на нестандартные случаи . В качестве альтернативы вы можете взглянуть на методы повышения с помощью CART или Random Forests (в последнем случае можно адаптировать стратегию выборки так, чтобы каждый класс был представлен при построении деревьев классификации). В статье Novak и LaDue обсуждаются плюсы и минусы GLM против рекурсивного разбиения . Я также нашел эту статью, Построение системы показателей с несбалансированными размерами классов от Hand и Vinciotti.


Ссылка для Крамера (1999) изменилась на paper.tinbergen.nl/98085.pdf
germcd

10

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

Однако в вашем случае дисбаланс классов не является проблемой. Возможно, это вопрос настройки параметров, поскольку поиск оптимальных параметров для классификатора SVM может быть довольно утомительным процессом. Например, в ядре RBF есть два параметра: и . Заранее неизвестно, какие и лучше всего подходят для данной проблемы; следовательно, необходимо выполнить выбор модели (поиск параметров).γ C γCγCγ

На этапе предварительной обработки данных помните, что SVM требует, чтобы каждый экземпляр данных был представлен как вектор действительных чисел. Следовательно, если есть категориальные атрибуты, рекомендуется преобразовывать их в числовые данные, используя m чисел для представления атрибута m-категории (или заменяя его m новыми двоичными переменными).

Кроме того, крайне важно масштабировать переменные перед применением SVM, чтобы избежать доминирования атрибутов в больших числовых диапазонах над атрибутами в меньших числовых диапазонах.

Проверьте эту бумагу .

Если вы работаете в R, проверьте функцию настройки (пакет e1071) для настройки гиперпараметров с помощью поиска в сетке по заданным диапазонам параметров. Затем, используя plot.tune , вы можете визуально увидеть, какой набор значений дает меньшую частоту появления ошибок.

Существует быстрый способ поиска параметров. Существует пакет R под названием «svmpath», который за один раз вычисляет полный путь регуляризации для двухклассового классификатора SVM. Вот ссылка на статью, которая описывает, что он делает.

PS Вы также можете найти эту статью интересной: получение калиброванных оценок вероятности


2
γ

1

Я бы посоветовал использовать другое значение параметра регуляризации C для примеров положительного класса и примеров отрицательного класса (многие пакеты SVM поддерживают это, и в любом случае это легко реализуется). Затем используйте, например, перекрестную проверку, чтобы найти правильные значения двух параметров регуляризации.

Можно показать, что это асимптотически эквивалентная повторная выборка данных в соотношении, определяемом C + и C- (поэтому нет никакого преимущества в повторной выборке, а не в повторном взвешивании, они заканчиваются тем же самым в конце и весах может быть непрерывным, а не дискретным, так что это дает более точное управление).

Не просто выбирайте C + и C-, чтобы придать вес 50-50 положительным и отрицательным моделям, хотя, поскольку степень влияния проблемы «классов дисбалансов» будет варьироваться от набора данных к набору данных, то есть сила оптимального повторения Взвешивание не может быть определено априори.

Также помните, что ложноположительные и ложноотрицательные затраты могут различаться, и проблема может решиться сама собой, если они будут включены в определение C + и C-.

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.