Comment afficher les voisins les plus proches à R?
Permettez-moi de commencer par dire que je n'ai aucune expérience avec R, KNN ou des données de la science en général. J'ai récemment trouvé Kaggle et ont été jouer avec le Chiffres De Reconnaissance de la concurrence/tutoriel.
Dans ce tutoriel, ils fournissent un exemple de code pour vous obtenir a commencé avec une base de soumission:
# 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)
Mes questions sont:
- Comment puis-je voir les voisins les plus proches qui ont été sélectionnés pour une
test ligne? - Comment puis-je modifier laquelle de ces dix est sélectionné
pour maresults
?
Ces questions sont peut-être trop large. Si oui, je serais heureux de tous les liens qui pourraient me pointer dans la bonne voie.
Il est très possible que j'ai dit quelque chose qui n'a pas de sens ici. Si c'est le cas, merci de me corriger.
source d'informationauteur Abe Miessler
Vous devez vous connecter pour publier un commentaire.
1) Vous pouvez obtenir les voisins les plus proches d'une ligne donnée comme suit:
Alors si vous voulez les indices des 10 plus proches voisins à la ligne 20 dans l'ensemble de la formation:
(Vous aurez les 10 plus proches voisins, parce que vous avez sélectionné
k=10
). Par exemple, si vous exécutez avec seulement les 1000 premières lignes de la formation et de l'ensemble de test (pour faire de calcul plus facile):Ceux sont les indices dans le jeu de la formation de 1000 qui sont les plus proches du 20e de ligne de l'ensemble de test.
2) Ça dépend de ce que tu veux dire par "modifier". Pour commencer, vous pouvez obtenir les indices de chacune des 10 plus proche des étiquettes à chaque ligne comme ceci:
Vous pouvez ensuite consulter les étiquettes de l'10 points les plus proches de la 20e à la formation de point comme ceci:
Cela indique que les 10 points les plus proches de la ligne 20 sont tous dans le groupe étiqueté 0.
knn
choisit simplement de l'étiquette par un vote à la majorité (avec des liens cassés au hasard), mais vous pouvez choisir un certain type de système de pondération si vous préférez.ETA: Si vous êtes intéressé dans la pondération la plus près les éléments les plus fortement dans votre mécanisme de vote, notez que vous pouvez également obtenir les distances de chacune des k voisins comme ceci: