현재 계산 된 거리가있는 "거리"배열에서 가장 작은 거리 값을 취하여 가장 짧은/가장 가까운 이웃을 찾습니다. 그런 다음 색인을 추적하기 위해 다른 검색을 수행하여 색인이 어떤 환자인지를 나에게 알려줍니다.K-Nearest 알고리즘 (Java)에서 가장 짧은 'K'거리 얻기
그러나 가장 가까운 이웃을 3 명 찾고 싶다고 말하면 어떻게해야합니까? 이를 위해 코드를 완전히 변경해야합니까?
많은 감사
int min = 99;
int d = 1;
String diagnosis;
//Finding smallest value from an array containing distance to new 'patient'
for(d=1; d<= numberOFinstances; d++){
if(distance[d] < min)
min = distance[d];
}
for (int p = 1; p < numberOFinstances; p++)
{
if (distance[p] == min){
System.out.println("Nearest patient to new patient is Patient "+p+ " with a distance of: " + min);
//Here I'm saying 6 because the diagnosis is in column 6 within the matrix
diagnosis = data[p][6];
System.out.println("The new patient's diagnosis is: " + diagnosis);
}
}
어레이의 첫 번째 요소는 요소 ([] INT) [0]. 당신은 이것을 익숙해 져야합니다. – ControlAltDel
'distance'를 정렬하고 처음 세 요소를 사용하는 것은 어떻습니까? 예를 들어 첫 번째 네 요소가 같은 거리 인 경우 코드를 처리 할 코드가있을 수 있습니다. –
@ControlAltDel, 입력 해 주셔서 감사합니다. 내 CSV 파일에 행 0에 헤더가 있기 때문에 1부터 시작합니다. – AnthonyJ