Классификация тензорного потока с чрезвычайно несбалансированным набором данных

109
9

Я использую TensorFlow LinearClassifier, а также DNN, чтобы классифицировать набор данных из двух классов.


Однако проблема заключается в том, что набор данных содержит 96% положительного результата и 4% отрицательного результата, а моя программа всегда возвращает прогноз как положительный. Конечно, в этом случае я достиг бы точности 96%, но это не имеет никакого смысла.


Каков хороший способ справиться с такой ситуацией?

спросил(а) 2021-01-19T21:31:40+03:00 6 месяцев, 2 недели назад
1
Решение
101

Вы можете попробовать изменить функцию стоимости, чтобы ложный положительный результат был бы оштрафован более сильно, чем ложный.

ответил(а) 2021-01-19T21:31:40+03:00 6 месяцев, 2 недели назад
90

Вот что вы можете сделать с помощью самых простых решений:

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

ответил(а) 2021-01-19T21:31:40+03:00 6 месяцев, 2 недели назад
77

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

ответил(а) 2021-01-19T21:31:40+03:00 6 месяцев, 2 недели назад
45

Вы можете проверить этот документ для разных методов выборки для смягчения проблемы дисбаланса класса http://www.machinelearning.org/proceedings/icml2007/papers/62.pdf. Простая случайная передискретизация меньшинства обычно работает лучше.

ответил(а) 2021-01-19T21:31:40+03:00 6 месяцев, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема