0
K-Nearest Neighbors 알고리즘을 구현했지만 matlab을 사용한 경험이 거의 없습니다. 코드의 작은 부분을 확인하고 무엇이 개선되거나 수정 될 수 있는지 알려주시겠습니까? 알고리즘의 올바른 구현이 되었길 바래요? 이를 테스트하려면이 Matlab 코드에서 개선 할 수있는 내용은 무엇입니까? KNN에 올바른 구현입니까?
function test_data = knn(test_data, tr_data,k)
numoftestdata = size(test_data,1);
numoftrainingdata = size(tr_data,1);
for sample=1:numoftestdata
%Step 1: Computing euclidean distance for each testdata
R = repmat(test_data(sample,:),numoftrainingdata,1) ;
euclideandistance = (R(:,1) - tr_data(:,1)).^2;
%Step 2: compute k nearest neighbors and store them in an array
[dist position] = sort(euclideandistance,'ascend');
knearestneighbors=position(1:k);
knearestdistances=dist(1:k);
% Step 3 : Voting
for i=1:k
A(i) = tr_data(knearestneighbors(i),2);
end
M = mode(A);
if (M~=1)
test_data(sample,2) = mode(A);
else
test_data(sample,2) = tr_data(knearestneighbors(1),2);
end
end
당신은 사용할 수 있습니다
- test_data = [6,0; 2,0; 5,0]
- tr_data = [1,1; 0,2; 3,2; 4,4; 5,3]
모범 사례 또는 optimis를 찾는 경우 특정 오류에 도움을주기보다는 도움을 요청하십시오.이 코드를 CodeReview 사이트에 게시하는 것이 좋습니다. –