Может ли экземпляр быть отброшен, когда одно / несколько значений признаков находятся за пределами диапазона?
Я строю распознаватель антител на изображениях кровяных клеток. Он основан на libsvm. Прототип хорошо работает, когда дело доходит до распознавания экземпляра, который принадлежит одному из обученных классов. Но когда я даю любое изображение, даже не содержащее кровяных клеток (например, у микроскопа было плохое смещение / фокус), оно все равно предлагает один из классов, известных по модели.
Сначала я решил реализовать класс "Неизвестно", но боюсь, что тренировка со всеми изображениями шума может ухудшить производительность модели.
Поэтому моя идея состоит в том, чтобы проверить, находится ли одна / несколько функций экземпляра, который должен быть распознан, вне диапазона значений, и отбросить его.
Это хороший метод? Если да, то как выбрать отсечение (например, с точки зрения стандартных отклонений)?
Большое спасибо!
1 ответ
В задачах с "возможными выборками, не относящимися к классу", наиболее очевидным решением, по-видимому, является создание одноклассного SVM (алгоритм обнаружения выбросов) одним из двух способов:
- Обучите два одноклассных SVM (по одному на класс) и отбросьте образцы, помеченные обеими моделями как "выбросы"
- Обучите один SVM для одного класса для всего набора данных (экземпляры обоих классов) и отбросьте данные, помеченные как выбросы
Предложенный подход с "проверкой вне диапазона" хорош, если существует пороговое значение obvios - поскольку вы спрашиваете здесь, что было бы лучшим выбором - это означает, что это не очень хороший способ. Если вы не можете (как эксперт) выяснить это самостоятельно, кажется, что гораздо лучше и безопаснее вариант обучения метода обнаружения выбросов, как это было предложено ранее, который фактически будет выполнять то же самое, но в автоматическом режиме (так как он найдет правила для отбрасывание "плохих данных" без обучения на любые "плохие изображения").