[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