Vorrei iniziare dicendo che non ho esperienza con R, KNN o scienza dei dati in generale. Recentemente ho trovato Kaggle e ho giocato con la competizione/tutorial Digit Recognition.Come visualizzare i vicini più vicini in R?
In questo tutorial che forniscono alcuni esempi di codice per iniziare con una presentazione di base:
# 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)
Le mie domande sono:
- Come posso visualizzare i vicini più vicini che sono stati selezionati per una riga di prova particolare ?
- Come posso modificare quale di questi dieci è selezionato per il mio
results
?
Queste domande potrebbero essere troppo ampie. In tal caso, accolgo con favore eventuali collegamenti che potrebbero indicarmi la strada giusta.
È molto possibile che ho detto qualcosa che non ha senso qui. Se questo è il caso, per favore correggimi.
risposta meravigliosa, grazie tu! Ho avuto alcune domande. Ogni volta che provo a stampare 'indices' restituisce null, dovrei fare qualcosa di diverso dal tuo esempio? Potete consigliare delle risorse per ulteriori ricerche su come creare uno schema di ponderazione personalizzato? O esempi di qualcuno che ne crea uno che io possa guardare? –
Questo è molto strano.Cosa ottieni se esegui 'print (k)'? Per quanto riguarda gli altri schemi di ponderazione, avresti tanta fortuna quanto vorrei cercare la frase "KNN ponderata" su Google. Ma sto scrivendo un po 'di più sulla ponderazione della mia risposta. –
Ok, quindi per chiarire sto effettivamente usando 'results' invece di' k'. Presumo che questo non faccia la differenza, ma ho pensato che dovrei buttarlo lì. Quando faccio 'print (results)' Stampa i 1000 elementi che sono eventualmente scritti nel mio file csv. –