[R-br] Ajuda com Knn Cross Validation
Walmes Zeviani
walmeszeviani em gmail.com
Sex Set 13 14:27:49 -03 2019
De fato, usar 683 é não usual. Por outro lado, fiquei intrigado e vi que
esse é o tamanho da amostra. Então creio que você esteja buscando fazer o
LOOCV (leave one out cross validation), só que de uma forma subótima. É
melhor que você passe o argumento "LOOCV" para o parâmetro `method`. Dessa
forma eu não observei mensagens de erro nem aviso. Mais um detalhe, usar
número par de vizinhos é não aconselhável porque gera empates no
classificador binário (um vizinho positivo e outro negativo) o que acredito
ser desempatado por chance. Então use apenas números ímpares no grid de
busca.
ctrl <- trainControl(method = "LOOCV")
nn_grid <- expand.grid(k = seq(1, by = 2, length.out = 7))
best_knn <- train(class ~ .,
data = biopsyX,
method = "knn",
trControl = ctrl,
preProcess = c("center", "scale"),
tuneGrid = nn_grid)
print(best_knn)
plot(best_knn)
-----------------------------------------------------
k-Nearest Neighbors
683 samples
9 predictors
2 classes: 'benign', 'malignant'
Pre-processing: centered (9), scaled (9)
Resampling: Leave-One-Out Cross-Validation
Summary of sample sizes: 682, 682, 682, 682, 682, 682, ...
Resampling results across tuning parameters:
k Accuracy Kappa
1 0.9531479 0.8962164
3 0.9619327 0.9163274
5 0.9677892 0.9293366
7 0.9707174 0.9356365
9 0.9677892 0.9292001
11 0.9692533 0.9323530
13 0.9707174 0.9356365
Accuracy was used to select the optimal model using the largest value.
The final value used for the model was k = 13.
À disposição.
Walmes.
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20190913/256f5a9a/attachment.html>
Mais detalhes sobre a lista de discussão R-br