K-ближайший сосед (он же KNN) - алгоритм классификации.
По сути, вы берете учебную группу из N предметов и классифицируете их. То, как вы их классифицируете, полностью зависит от ваших данных и того, что вы считаете важными характеристиками классификации этих данных. В вашем примере это может быть категория сообщений, которые опубликовали элемент, кто проголосовал за элемент и т. Д.
Как только эти «обучающие» данные были классифицированы, вы можете оценить «неизвестную» точку данных. Вы определяете «класс» неизвестного путем нахождения ближайших к нему соседей в системе классификации. Если вы определите классификацию по 3 ближайшим соседям, ее можно будет назвать алгоритмом 3 ближайших соседей.
Способ определения «ближайшего соседа» сильно зависит от того, как вы классифицируете ваши данные. Очень часто данные наносятся в N-мерное пространство, где N представляет количество различных классификационных характеристик, которые вы изучаете.
Тривиальный пример:
Допустим, у вас есть координаты долготы / широты местоположения, которое может находиться на любой суше в любой точке мира. Предположим также, что у вас нет карты, но у вас do очень большой набор данных, который дает вам долготу / широту многих разных городов мира, и вы также знаете, в какой стране эти города находятся в.
Если бы я спросил вас, в какой стране находится точка случайной широты, вы бы смогли это выяснить? Что бы вы сделали, чтобы понять это?
Данные по долготе / широте естественным образом попадают в график X, Y. Итак, если вы наметили все города на этом графике, а затем неизвестную точку, как бы вы выяснили страну неизвестного? Вы можете начать рисовать круги вокруг этой точки, становясь все больше и больше, пока круг не охватит 10 ближайших городов на графике. Теперь вы можете посмотреть на страны этих 10 городов. Если все 10 находятся в США, то вы можете с достаточной степенью уверенности сказать, что ваша неизвестная точка также находится в США. Но если в США только 6 городов, а остальные 4 - в Канаде, можете ли вы сказать, где находится ваш неизвестный пункт? Вы все еще можете догадаться о США, но с меньшей уверенностью.
Самая сложная часть KNN - выяснить, как классифицировать ваши данные таким образом, чтобы вы могли определить «соседей» схожего качества и расстояние до этих соседей.