Curso
Si quieres hacer nuestro curso Machine Learning Toolbox, aquí tienes el enlace.
Calcular una matriz de confusión
Como viste en el vídeo, una matriz de confusión es muy útil para calibrar la salida de un modelo y revisar todos los posibles resultados de tus predicciones (verdaderos positivos, verdaderos negativos, falsos positivos, falsos negativos).
Antes de crear tu matriz de confusión, necesitas "cortar" las probabilidades predichas en un umbral concreto para convertir probabilidades en predicciones de clase. Puedes hacerlo fácilmente con la función ifelse(), por ejemplo:
class_prediction <-
ifelse(probability_prediction > 0.50,
"positive_class",
"negative_class"
)
Podrías crear esta tabla de contingencia con la función base de R table(), pero confusionMatrix() de caret además de las tasas básicas de la tabla, devuelve muchas estadísticas adicionales muy útiles. Puedes calcular la matriz de confusión (y sus estadísticas asociadas) usando los resultados predichos y los reales, por ejemplo:
confusionMatrix(predicted, actual)
Instrucciones
- Convierte las predicciones numéricas
pen un vector de predicciones de clase llamadop_classusando un umbral de 0,50. Asegúrate de usar"M"para la clase positiva y"R"para la clase negativa al predecir, para que coincidan con las clases de los datos originales. - Genera una matriz de confusión usando
p_class, los valores reales del conjuntotesty la funciónconfusionMatrix().
Si todo esto te cuadra, sigue con el siguiente ejercicio. Si no, aquí tienes un vídeo resumen.
Vídeo resumen sobre la matriz de confusión
De probabilidades a matriz de confusión
Imagina que quieres asegurarte al máximo de que tu modelo identifica correctamente todas las minas como minas. En este caso, podrías usar un umbral de predicción de 0,10 en lugar de 0,90.
Puedes construir la matriz de confusión igual que antes, usando tus nuevas clases predichas:
pred <- ifelse(probability > threshold, "M", "R")
Luego puedes llamar a la función confusionMatrix() igual que en el ejercicio anterior:
confusionMatrix(pred, actual)
Si quieres aprender más con este curso, aquí tienes el enlace.
