Поиск K-ближайших соседей и его реализация
Я работаю над классификацией простых данных, используя KNN с евклидовым расстоянием. Я видел пример того, что я хотел бы сделать с помощью MATLAB.knnsearch
функция как показано ниже:
load fisheriris
x = meas(:,3:4);
gscatter(x(:,1),x(:,2),species)
newpoint = [5 1.45];
[n,d] = knnsearch(x,newpoint,'k',10);
line(x(n,1),x(n,2),'color',[.5 .5 .5],'marker','o','linestyle','none','markersize',10)
Приведенный выше код принимает новую точку, т.е.[5 1.45]
и находит 10 ближайших значений к новой точке. Может кто-нибудь, пожалуйста, покажите мне алгоритм MATLAB с подробным объяснением того, чтоknnsearch
функция делает? Есть ли другой способ сделать это?