Какие методы одноклассовой классификации существуют
Что проверяют
Понимаете ли вы постановку: модель учится на объектах одного класса, нормы, и должна отличать от них всё остальное. Это novelty detection, близкая родственница поиска аномалий. Следом просят показать решение на scikit-learn и спрашивают, как выбрать порог и оценить качество, если меток аномалий почти нет.
Как отвечать
Сгруппируйте методы по идее:
- граничные:
OneClassSVMстроит границу вокруг нормальных данных в пространстве ядра, параметрnuзадаёт верхнюю границу доли ошибок на обучении и нижнюю границу доли опорных векторов. Родственный SVDD ищет минимальную сферу. На больших выборках вместо него берутSGDOneClassSVMс аппроксимацией ядра; - изоляционные:
IsolationForestслучайно режет признаки и смотрит, за сколько разбиений объект оказывается в отдельном листе. Аномалии изолируются быстрее, масштабирование не нужно; - по плотности и расстоянию:
LocalOutlierFactor(novelty=True)сравнивает локальную плотность точки с плотностью соседей, также используют расстояние до k-го соседа и оценку плотности (KernelDensity, гауссова смесь); - статистические:
EllipticEnvelope, то есть расстояние Махаланобиса с робастной оценкой ковариации. Хорош для примерно гауссовых данных; - нейросетевые: автоэнкодер, где мерой аномальности служит ошибка реконструкции, и Deep SVDD для изображений и сложных сигналов.
Оговорите разницу режимов: novelty detection учится на чистой норме, outlier detection работает с загрязнённой выборкой. У LocalOutlierFactor это прямо переключается параметром novelty, и только с novelty=True у модели появляется predict для новых данных.
Где спотыкаются
Забывают масштабировать признаки перед OneClassSVM и LOF. На признаках разного масштаба расстояния и RBF-ядро теряют смысл.
Оценивают модель на тех же данных, на которых обучали, или не оценивают вовсе. Нужна хотя бы небольшая размеченная выборка аномалий и метрика вроде PR-AUC, а порог (contamination или квантиль скора) подбирают под допустимую долю ложных тревог.
Называют Isolation Forest «случайным лесом для аномалий». Деревья там строятся без целевой переменной и не голосуют за класс, важна только глубина изоляции.