所以目前我有以下幾點,它通過從我的具有計算距離的「距離」數組中獲取最小距離值來找到最短/最近鄰居。然後它會進行另一次搜索來追蹤它的索引,然後向我指明它屬於哪個病人。在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);
}
}
數組的第一元素是元素[0]。你應該習慣使用這個。 – ControlAltDel
如何排序'distance'並使用前三個元素?如果例如前四個元素具有相同的距離,也許有些代碼可以處理關係。 –
@ControlAltDel,感謝您的輸入。我從1開始,因爲我的CSV文件在第0行有標題。 – AnthonyJ