So zeigen die nächsten Nachbarn in R?
Lassen Sie mich beginnen mit den Worten, ich habe keine Erfahrung mit R -, KNN-oder Daten der Wissenschaft im Allgemeinen. Vor kurzem fand ich Kaggle und gespielt haben, um mit der Ziffer Anerkennung Wettbewerb/tutorial.
In diesem tutorial stellen Sie einige Beispiel-code, um Ihnen den Einstieg mit einem Basis-Eingabe:
# makes the KNN submission
library(FNN)
train <- read.csv("c:/Development/data/digits/train.csv", header=TRUE)
test <- read.csv("c:/Development/data/digits/test.csv", header=TRUE)
labels <- train[,1]
train <- train[,-1]
results <- (0:9)[knn(train, test, labels, k = 10, algorithm="cover_tree")]
write(results, file="knn_benchmark.csv", ncolumns=1)
Meine Fragen sind:
- Wie kann ich die nächsten Nachbarn, die ausgewählt wurden, für eine
insbesondere test-Reihe? - Wie kann ich ändern, welche jene zehn ausgewählt ist
für meineresults
?
Diese Fragen vielleicht zu breit. Wenn dem so ist, würde ich es begrüßen, alle links, die könnten mir den richtigen Weg.
Ist es sehr möglich, dass ich etwas gesagt haben, das macht keinen Sinn hier. Wenn dies der Fall ist, bitte korrigieren Sie mich.
InformationsquelleAutor der Frage Abe Miessler | 2012-08-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
1) können Sie sich die nächsten Nachbarn einer gegebenen Zeile in etwa so:
Dann, wenn Sie wollen, dass die Indizes der 10 nächsten Nachbarn zu Zeile 20 in der Ausbildung gesetzt:
(Sie erhalten die 10 nächsten Nachbarn, weil Sie ausgewählt
k=10
). Zum Beispiel, wenn Sie laufen nur die ersten 1000 Zeilen der Trainings-und Test-set (um es rechnerisch einfacher):Diejenigen sind, die Indizes innerhalb der Ausbildung von 1000, die am nächsten an der 20 Zeile des test-set.
2) Es hängt davon ab, was meinen Sie mit "ändern". Für Vorspeisen, können Sie die indices für jede der 10 nächsten Etiketten auf jede Zeile wie diese:
Können Sie dann sehen, die Etiketten, die 10 am nächsten gelegenen Punkte des 20-Trainings zeigen, wie diese:
Dies bedeutet, dass alle 10 die nächsten Punkte zu Zeile 20 sind alle in der Gruppe mit der Bezeichnung 0.
knn
wählt einfach das Etikett mit der Mehrheit der Stimmen (mit Bindungen gebrochen zufällig), aber Sie können wählen, eine Art von gewichtungsschema, wenn Sie bevorzugen.ETA: Wenn Sie interessiert sind, in der Gewichtung, je näher Elemente stärker in Ihre voting-Schema, beachten Sie, dass Sie können auch die Entfernungen zu jedem der k Nachbarn wie folgt:
InformationsquelleAutor der Antwort David Robinson