Personalizar trainControl
Como viste en el vídeo, el área bajo la curva ROC (AUC) es un resumen muy útil, en un solo número, de la capacidad de un modelo para distinguir la clase positiva de la negativa (p. ej., minas frente a rocas). Un AUC de 0.5 no mejora al azar, un AUC de 1.0 corresponde a un modelo perfectamente predictivo y un AUC de 0.0 sería perfectamente antipredictivo (algo muy raro).
A menudo es una métrica mucho más útil que simplemente ordenar modelos por su exactitud con un umbral fijo, ya que distintos modelos pueden requerir pasos de calibración diferentes (revisando la matriz de confusión en cada paso) para encontrar el umbral de clasificación óptimo para ese modelo.
Puedes usar la función trainControl() de caret para usar AUC (en lugar de la exactitud) al ajustar los parámetros de tus modelos. La función de conveniencia twoClassSummary() te permite hacerlo fácilmente.
Cuando uses twoClassSummary(), asegúrate de incluir siempre el argumento classProbs = TRUE o tu modelo dará un error. (No puedes calcular AUC solo con predicciones de clase; también necesitas las probabilidades de clase.)
Este ejercicio forma parte del curso
Machine Learning con caret en R
Instrucciones del ejercicio
- Personaliza el objeto
trainControlpara usartwoClassSummaryen lugar dedefaultSummary. - Usa validación cruzada de 10 particiones (10-fold).
- Asegúrate de indicar a
trainControl()que devuelva probabilidades de clase.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Create trainControl object: myControl
myControl <- trainControl(
method = "cv",
number = ___,
summaryFunction = defaultSummary,
classProbs = ___, # IMPORTANT!
verboseIter = TRUE
)