所以目前我有以下几点,它通过从我的具有计算距离的“距离”数组中获取最小距离值来找到最短/最近邻居。然后它会进行另一次搜索来追踪它的索引,然后向我指明它属于哪个病人。在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