Классификатор только для одного класса

10

В простой классификации у нас есть два класса: класс-0 и класс-1. В некоторых данных у меня есть только значения для класса-1, поэтому нет для класса-0. Сейчас я думаю о создании модели для моделирования данных для класса 1. Таким образом, когда поступают новые данные, эта модель применяется к новым данным и находит вероятность, указывающую, насколько вероятно, что новые данные соответствуют этой модели. Затем, сравнивая с порогом, я могу отфильтровать несоответствующие данные.

Мои вопросы:

  • Это хороший способ работать с такими проблемами?
  • Можно ли использовать в этом случае классификатор RandomForest? Нужно ли добавлять искусственные данные для класса 0, которые, я надеюсь, классификатор считает шумом?
  • Любая другая идея может помочь для этой проблемы?
Любитель больших данных
источник

Ответы:

9

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

Генерировать искусственные данные - значит делать дополнительные предположения, не делайте этого, если не нужно.

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

Некоторые ссылки относительно одноклассного SVM:

  1. Schölkopf, Bernhard, et al. «Оценка поддержки многомерного распределения». Нейронные вычисления 13.7 (2001): 1443-1471. Эта статья представила подход.

  2. Такс, Дэвид М.Дж. и Роберт П.В.Дуин. «Описание векторных данных поддержки». Машинное обучение 54.1 (2004): 45-66. Другой способ сделать то же самое, возможно, более интуитивный.

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

Одноклассный SVM доступен во многих пакетах SVM, включая libsvm , scikit-learn (Python) и kernlab (R).

Марк Клазен
источник
3
Также доступна кандидатская диссертация
Такса «
Коротко и точно! (+1) «Оба этих подхода были признаны эквивалентными». - Можете ли вы указать ссылку / цитирование для этого? Это scholar.google.de/…
Boern
6

Позвольте мне добавить еще несколько возможностей:

Общая идея заключается в том, что установка порогового значения для расстояния от класса позволяет вам решить, принадлежит ли выборка к этому классу или нет, и независимо от того, существуют ли другие классы или нет.

  • Махаланобис-Расстояние => QDA
  • SIMCA (мягкое независимое моделирование аналогий классов) использует расстояния в пространстве оценок PCA.
    SIMCA широко распространена в хемометрической литературе (хотя на самом деле редко используется в одном классе).
  • (SVM уже рассматриваются в ответе @Marc Claesen)

Ричард Дж. Бреретон: Хемометрика для распознавания образов (Wiley, 2009) имеет целую главу об одноклассной классификации.

cbeleites недоволен SX
источник