K Классификация ближайших соседей Частный случай с идентичными точками

Вопрос касается алгоритма классификации KNN - метки классов обучающих выборок дискретны.

Предположим, что в обучающем наборе есть n точки, идентичные новому шаблону, который мы собираемся классифицировать, то есть расстояния от этих точек до нового наблюдения равны нулю (или <epsilon). Может случиться так, что эти одинаковые тренировочные точки будут иметь разные метки классов. Теперь предположим, что n < K и есть другие обучающие точки, которые входят в набор ближайших соседей, но имеют ненулевые расстояния до нового наблюдения. Как в этом случае присвоить метку класса новой точке?

Есть несколько вариантов, таких как:

  1. рассмотреть всех K (или более, если есть связи с худшим ближайшим соседом) соседей и провести голосование большинством
  2. игнорировать соседей с ненулевыми расстояниями, если в обучающих данных есть «клоны» новой точки, и брать большинство голосов только за клоны
  3. то же, что и 2. но назначьте класс с наибольшей априорной вероятностью в обучающих данных (среди клонов)
  4. ...

Любые идеи? (ссылки также приветствуются)


person Oleg Shirokikh    schedule 08.09.2013    source источник


Ответы (1)


Каждый из предложенных методов будет работать в каких-то задачах, а в каких-то нет. В общем, нет необходимости думать о таких пограничных случаях и просто использовать поведение по умолчанию (вариант «1» из вашего вопроса). Фактически, если пограничные случаи какого-либо алгоритма классификации становятся проблемой, это сигнал по крайней мере одного из:

  • плохое определение проблемы,
  • плохое представление данных,
  • предварительная обработка плохих данных,
  • использована неудачная модель.

С теоретической точки зрения ничего не изменится, если какие-то точки окажутся точно на месте ваших тренировочных данных. Единственная разница будет заключаться в том, что у вас есть непротиворечивый обучающий набор (в том смысле, что дубликаты с разными метками не встречаются в обучающих данных) и 100% правильный (каждая метка является идеальной маркировкой для этого точка), то было бы разумно добавить предложение if, отвечающее в соответствии с меткой точки. Но на самом деле это бывает редко.

person lejlot    schedule 08.09.2013
comment
У меня такие же чувства, но хотел спросить мнения. Благодарность - person Oleg Shirokikh; 09.09.2013