SMOTE Алгоритм и классификация: переоцененный успех предсказания - PullRequest
0 голосов
/ 06 ноября 2018

Я столкнулся с проблемой, на которую не могу найти ответ. У меня есть проблема бинарной классификации (выход Y = 0 или Y = 1) с Y = 1 классом меньшинства (фактически Y = 1 указывает на дефолт компании, с пропорцией = 0,02 в исходном кадре данных). Поэтому я вычислил передискретизацию с использованием алгоритма SMOTE только на моем тренировочном наборе (после разделения моего информационного кадра в обучающих и тестовых наборах). Я тренирую логистическую регрессию на своем тренировочном наборе (с пропорциями класса «defaut» = 0,3), а затем смотрю на кривую ROC и MSE, чтобы проверить, хорошо ли мой алгоритм предсказывает значение по умолчанию. Я получаю очень хорошие результаты с точки зрения как AUC (AUC = 0,89), так и MSE (MSE = 0,06). Тем не менее, когда я пытаюсь более точно и индивидуально взглянуть на свои прогнозы, я обнаружил, что 20% дефолта не очень хорошо предсказаны. У вас есть метод, чтобы хорошо оценить качество моего прогноза (качество означает для меня прогнозы, которые хорошо прогнозируют дефолт). Я думал, что AUC был хорошим критерием ... До сих пор у вас есть метод, чтобы улучшить мою регрессию? Спасибо

1 Ответ

0 голосов
/ 06 ноября 2018

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

Это матрица двустороннего ввода, которая позволяет вам видеть не только истинных положительных / истинных отрицательных значений ( TP / TN ), которые являются вашими правильными предсказаниями, но также ложные срабатывания ( FP ) / ложные срабатывания ( FN ), и в большинстве случаев это ваш истинный интерес.

FP и FN - это ошибки, которые допускает ваша модель. Вы можете отслеживать, насколько хорошо ваша модель справляется с обнаружением TP (1-FP) или TN (1-FN), используя чувствительность или специфичность ( ссылка ).

Обратите внимание, что вы не можете улучшить одно без понижения другого. Поэтому иногда вам нужно выбрать один.

Хорошим компромиссом является F1-счет , который пытается усреднить два.

Итак, если вас больше интересуют значения по умолчанию (давайте представим, что defaults=Positive Class), вы предпочтете модель с более высокой чувствительностью . Но не забывайте также не пренебрегать специфичностью.

Вот пример кода в R:

# to get the confusion matrix and some metrics
caret::confusionMatrix(iris$Species, sample(iris$Species))
...