Может ли экземпляр быть отброшен, когда одно / несколько значений признаков находятся за пределами диапазона?

Я строю распознаватель антител на изображениях кровяных клеток. Он основан на libsvm. Прототип хорошо работает, когда дело доходит до распознавания экземпляра, который принадлежит одному из обученных классов. Но когда я даю любое изображение, даже не содержащее кровяных клеток (например, у микроскопа было плохое смещение / фокус), оно все равно предлагает один из классов, известных по модели.

Сначала я решил реализовать класс "Неизвестно", но боюсь, что тренировка со всеми изображениями шума может ухудшить производительность модели.

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

Это хороший метод? Если да, то как выбрать отсечение (например, с точки зрения стандартных отклонений)?

Большое спасибо!

1 ответ

Решение

В задачах с "возможными выборками, не относящимися к классу", наиболее очевидным решением, по-видимому, является создание одноклассного SVM (алгоритм обнаружения выбросов) одним из двух способов:

  • Обучите два одноклассных SVM (по одному на класс) и отбросьте образцы, помеченные обеими моделями как "выбросы"
  • Обучите один SVM для одного класса для всего набора данных (экземпляры обоих классов) и отбросьте данные, помеченные как выбросы

Предложенный подход с "проверкой вне диапазона" хорош, если существует пороговое значение obvios - поскольку вы спрашиваете здесь, что было бы лучшим выбором - это означает, что это не очень хороший способ. Если вы не можете (как эксперт) выяснить это самостоятельно, кажется, что гораздо лучше и безопаснее вариант обучения метода обнаружения выбросов, как это было предложено ранее, который фактически будет выполнять то же самое, но в автоматическом режиме (так как он найдет правила для отбрасывание "плохих данных" без обучения на любые "плохие изображения").

Другие вопросы по тегам