KNN выбирает метку класса, когда k = 4

В классификации k-NN выходом является принадлежность к классу. Объект классифицируется большинством голосов его соседей, при этом объект относится к классу, наиболее распространенному среди его k ближайших соседей (k — положительное целое число, обычно малое).

  1. Если k = 1, то объект просто присваивается классу этого единственного ближайшего соседа.
  2. Если k=3, а метки классов: Good =2 Bad=1, то предсказанная метка класса будет Good, которая содержит большинство голосов.
  3. Если k=4, а метки классов: "Хорошо" =2 "Плохо=2", какой будет метка класса?

person USB    schedule 20.01.2015    source источник


Ответы (2)


Существуют разные подходы. Например, Matlab использует «случайный» или «ближайший», как описано здесь.

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

person Alper    schedule 20.01.2015
comment
Да, это один из способов сделать это. - person Alper; 21.01.2015

Эта проблема не специфична для k=4.

Рассмотрим набор данных с 3 классами. При k=2 могут возникнуть два разных класса. При k=3 могут возникать три разных класса, при k=4 это может быть 0,2,2... любое k больше 1 несет риск ничьи.

Выберите один случайным образом или используйте взвешивание (т. е. придайте 1NN больший вес, чем второму ближайшему соседу и т. д.), чтобы еще больше снизить риск совпадений.

person Has QUIT--Anony-Mousse    schedule 20.01.2015
comment
Как мы можем выбрать это наугад? - person USB; 21.01.2015
comment
Выберите случайное из тех, которые являются максимальными. - person Has QUIT--Anony-Mousse; 21.01.2015
comment
@HasQUIT--Anony-Mousse Самый простой способ - реализовать функцию, как здесь - stackoverflow.com/a/84747/2047418 - person Filip Bartuzi; 20.06.2020