Ich arbeite an einem k-Nearest Neighbours-Klassifizierungssystem und verwende ein "Bucket Voting" -System, das vorhergesagte Klassen abfragt und dann eine Vorhersage basierend auf der Klasse liefert höchste Anzahl von "Stimmen" innerhalb der Stichprobe.Markieren Sie nur die korrekte Klasse in einer anderen Farbe im R-Histogramm
Mein Problem ist, dass ich automatisch Histogramme erstellen möchte, die blaue Balken für die falschen Vorhersagen und einen roten Balken für die korrekt vorhergesagte Klasse haben. Hier ist ein Code-Schnipsel:
for (class in 14:15) {
class_test_index <- which(walkTest_labels == class)
class_test <- as.numeric(walkTest_pred[class_test_index])
hist(class_test,
breaks = 0:22,
col = ifelse(class_test == class, "red", "blue"),
border = "green",
main = "Distribution by Classes",
ylab = "Count",
xlab = "Class")
}
Ich habe gerade zwei der Klassen in meiner Schleife zur Veranschaulichung verwendet. Links zu den zwei Histogrammen, die sich ergeben, sind hier.
http://i.stack.imgur.com/VXger.png
http://i.stack.imgur.com/ChAE7.png
In beiden nur eine Bar, die größte, soll rot sein. In einem von ihnen ist der richtige Balken rot, aber es gibt einen anderen Balken, der ebenfalls rot ist. In dem anderen Histogramm gibt es wieder zwei Balken, die rot sind, aber beide sind falsch.
Siehe [hier] (http://Stackoverflow.com/q/21858394/324364) für einige allgemeine Hinweise zu einem potenziell besseren Weg, 'hist' für diese Art von Dingen zu verwenden. Ein Balkendiagramm wäre jedoch wahrscheinlich einfacher und aufgrund der diskreten Natur Ihrer Daten sinnvoller. – joran
Können Sie einige Reihen von Datenrahmen angeben, die Sie zum Erzeugen der Histogramme verwenden? – Nate
Hallo Nathan, danke für die Nachfrage. Hier ist nur ein einfaches Beispiel, was verwendet wird, um das Histogramm zu erstellen. '> head (class_test) [1] 16 5 5 3 15 15 'Wie Sie sehen können, ist es nur ein Vektor von Klassifikationen. Sie bewegen sich zwischen 1 und 22. –