So habe ich jetzt das Folgende, das mich den kürzesten/nächsten Nachbarn findet, indem ich den kleinsten Entfernungswert von meinem "Abstand" -Array mit den berechneten Entfernungen nehme. Dann macht es eine andere Suche, um seinen Index aufzuspüren, der mir dann anzeigt, zu welchem Patienten es gehört.Die kürzesten 'K'-Abstände im K-nächsten Algorithmus (Java)
Aber sagen, ich wollte die 3 nächsten Nachbarn finden, wie würde ich das tun? Muss ich meinen Code vollständig ändern, um dies zu berücksichtigen?
Vielen Dank
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);
}
}
Das erste Element eines Array-Element [0]. Sie sollten sich daran gewöhnen. – ControlAltDel
Wie wäre es mit "Entfernung" sortieren und die ersten drei Elemente verwenden? Vielleicht ein Code zum Umgang mit Bindungen, wenn zum Beispiel die ersten vier Elemente den gleichen Abstand haben. –
@ControlAltDel, danke für Ihre Eingabe. Ich fange von 1 an, weil meine CSV-Datei Header in der Zeile 0 hat. – AnthonyJ