ComeçarComece de graça

Personalizando o trainControl

Como você viu no vídeo, a área sob a curva ROC (AUC) é um resumo muito útil, em um único número, da capacidade de um modelo de discriminar a classe positiva da negativa (por exemplo, minas de rochas). Uma AUC de 0,5 não é melhor que um palpite aleatório, uma AUC de 1,0 indica um modelo perfeitamente preditivo e uma AUC de 0,0 é perfeitamente antipreditiva (o que é raro).

Isso costuma ser muito mais útil do que simplesmente ranquear modelos pela acurácia em um determinado limiar, já que modelos diferentes podem exigir etapas de calibração distintas (analisando a matriz de confusão em cada etapa) para encontrar o limiar de classificação ideal para aquele modelo.

Você pode usar a função trainControl() do caret para usar AUC (em vez de acurácia) ao ajustar os parâmetros dos seus modelos. A função prática twoClassSummary() permite fazer isso facilmente.

Ao usar twoClassSummary(), lembre-se de sempre incluir o argumento classProbs = TRUE, ou seu modelo gerará um erro! (Não é possível calcular AUC apenas com as previsões de classe. Você também precisa das probabilidades de classe.)

Este exercício faz parte do curso

Machine Learning com caret em R

Ver curso

Instruções do exercício

  • Personalize o objeto trainControl para usar twoClassSummary em vez de defaultSummary.
  • Use validação cruzada com 10 folds.
  • Não se esqueça de informar ao trainControl() para retornar probabilidades de classe.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# Create trainControl object: myControl
myControl <- trainControl(
  method = "cv",
  number = ___,
  summaryFunction = defaultSummary,
  classProbs = ___, # IMPORTANT!
  verboseIter = TRUE
)
Editar e executar o código