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
Instruções do exercício
- Personalize o objeto
trainControlpara usartwoClassSummaryem vez dedefaultSummary. - 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
)