Я использую машинное обучение в python, чтобы предсказать двоичный результат (успешно или успешно) на сильно несбалансированных данных из набора производственных данных. Соотношение Pass / Fail составляет 99: 1. Я пробовал использовать недостаточную и избыточную выборку, также пытался использовать SMOTE, но все с ограниченным успехом. Я выбрал алгоритм GradientBoostingClassifier () из sklearn, так как он, кажется, имеет лучшую комбинацию производительности по сравнению с прогнозированием.
Я хочу ограничить ложноотрицательную классификацию «Fail», поскольку она в 10 раз дороже для моего процесса. Я также решил использовать AU C и / или матрицу путаницы в качестве моих метрик c для оптимизации, поскольку они более полезны, чем другие метрики.
Одно из решений, которое я рассмотрел, состояло в том, чтобы запустить 2 последовательных и отдельных теста для данных, сначала тест для оптимизации отзыва (выявление большинства вероятных отказов), а затем другой для оптимизации точности (отлов фактических истинных отказов). Я получил эту идею из некоторых исследований по выявлению / прогнозированию рака. Идея заключается в том, что вы получите результат теста, в котором говорится, что у вас рак, а затем еще один тест, чтобы определить, действительно ли у вас рак. Кажется, что у них похожая проблема, и они решили высокий уровень ложных отрицательных результатов со вторым тестом, который был лучше при их уменьшении.
В любом случае, я ищу помощь в выборе наилучшего пути, другие идеи, чтобы попробовать, и, наконец, есть ли библиотеки, которые помогут упростить решение этой сложной проблемы.