2016-10-31 2 views
0

У меня есть некоторые проблемы с предсказанием классификатора KNN без использования встроенной функции. Я застрял здесь и понятия не имел, как перейти к следующему шагу. Вот мой код:Как предсказать классификатор KNN без использования встроенной функции

% calculate Euclidean distance 
dist = pdist2(test, train, 'euclidean'); 
for k = [1 3 5 7] 
    [~, nearest] = sort(dist, 2); 
    nearst = nearest(:, 1:k); 
end % for loop 

Где test является 297x64 матрица и train матрица 1500x64. Матрица dist составляет 297x1500. Любая помощь будет благодарна!

ответ

1

Так вам удалось получить отсортированный показатели с точки зрения расстояний в вашем nearst, все, что вам нужно сделать, это обратиться к своим этикетками исходных данных. Таким образом, у вас есть переменная labels, которая содержит истинную метку для каждой точки. Используйте индексы, хранящиеся в nearst, чтобы прочитать их и просто сообщить наиболее распространенное значение.

+0

Спасибо! Я попытаюсь выяснить, как его реализовать на MATLAB. – BigD

Смежные вопросы