Permítanme comenzar diciendo que no tengo experiencia con R, KNN o ciencia de datos en general. Recientemente encontré Kaggle y he estado jugando con la competencia/tutorial Digit Recognition.¿Cómo ver los vecinos más cercanos en R?
En este tutorial se proporcionan algunos ejemplos de código para que pueda empezar con una presentación básica:
# 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)
Mis preguntas son:
- ¿Cómo puedo ver los vecinos más cercanos que han sido seleccionados para una fila de prueba particular ?
- ¿Cómo puedo modificar cuál de esas diez está seleccionada para mi
results
?
Estas preguntas pueden ser demasiado amplias. De ser así, agradecería cualquier enlace que pueda apuntarme por el camino correcto.
Es muy posible que he dicho algo que no tiene sentido aquí. Si este es el caso, por favor corrígeme.
respuesta maravilloso, gracias ¡tú! Tenía algunas preguntas. Cada vez que trato de imprimir 'índices', devuelve nulo, ¿debería hacer algo diferente de tu ejemplo? ¿Puede recomendar algún recurso para investigar más sobre cómo crear un esquema de ponderación personalizado? ¿O ejemplos de alguien que crea uno que pueda mirar? –
Eso es muy extraño.¿Qué obtienes si haces 'print (k)'? En cuanto a otros esquemas de ponderación, tendrías tanta suerte como buscar la frase "ponderado por KNN" en Google. Pero estoy escribiendo un poco más sobre la ponderación en mi respuesta. –
Ok, solo para aclarar que estoy usando 'results' en lugar de' k'. Supongo que esto no hace la diferencia, pero pensé que debería arrojar eso por ahí. Cuando lo hago 'print (results)' Imprime los 1000 elementos que finalmente se escriben en mi archivo csv. –