Zacznę od stwierdzenia, że nie mam żadnego doświadczenia z R, KNN lub nauką o danych w ogóle. Ostatnio znalazłem Kaggle i bawiłem się konkursem/tutorialem Digit Recognition.Jak wyświetlić najbliższych sąsiadów w R?
W tym tutorialu one dostarczyć przykładowy kod, aby uzyskać początek z podstawowych wniosków:
# 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)
Moje pytania to:
- Jak mogę wyświetlić najbliższych sąsiadów, które zostały wybrane do a konkretny wiersz testowy?
- Jak mogę zmienić, która z tych dziesięciu jest wybrana dla mojego
results
?
Te pytania mogą być zbyt ogólne. Jeśli tak, chciałbym powitać wszystkie linki, które mogłyby wskazać mi właściwą drogę.
Jest możliwe, że powiedziałem coś, co nie ma sensu. W takim przypadku popraw mnie.
Doskonała odpowiedź, dziękuję ty! Miałem kilka pytań. Za każdym razem, gdy próbuję wydrukować 'indeksy', zwraca ona wartość null, czy powinienem robić coś innego niż twój przykład? Czy możesz polecić jakieś zasoby, aby dowiedzieć się więcej na temat tworzenia niestandardowego schematu ważenia? Albo przykłady kogoś, kto tworzy taki, na który mogę patrzeć? –
To bardzo dziwne.Co otrzymasz, jeśli zrobisz "print (k)"? Jeśli chodzi o inne systemy ważenia - miałbyś tyle szczęścia, ile szukałbym w Google słowa "KNN ważony". Ale piszę trochę więcej o wadze w mojej odpowiedzi. –
Ok, więc aby wyjaśnić, używam 'wyników' zamiast' k'. Zakładam, że to nie ma znaczenia, ale pomyślałem, że powinienem po prostu to tam rzucić. Kiedy robię 'print (wyniki)' To wypisuje 1000 elementów, które są ostatecznie zapisywane do mojego pliku csv. –