Desmitificando la matriz de confusión en el aprendizaje automático [asombroso]
Publicado: 2020-12-07Machine Learning es un término general bajo el cual acumula el procesamiento de datos, lo que deriva en conocimientos significativos de los datos y el modelado de datos. Después de terminar con el modelado de datos, el modelo debe medirse para su evaluación de rendimiento y otros parámetros basados en la industria, y una de las métricas más comunes es la matriz de confusión.
Tabla de contenido
¿Qué es la matriz de confusión y por qué se utiliza?
Es una métrica de rendimiento utilizada en problemas de clasificación donde las clases de salida pueden ser dos o más y esta matriz representa todas las combinaciones de valores predichos por un modelo con valores reales asociados con esa entrada. Se llama 'matriz de confusión' porque según las definiciones parece fácil, pero a medida que avanzamos para derivar parámetros más valiosos, surge la confusión con respecto a qué parámetro se adapta mejor a un lugar en particular.
Se utiliza en lugares donde el problema de clasificación está muy desequilibrado y una clase domina sobre otras clases. En tales escenarios, es posible que se sorprenda al ver que la precisión del modelo alcanza un máximo del 99%, pero en realidad, el modelo está muy sesgado hacia la clase dominante. Hay muy pocas posibilidades de que obtenga predicciones para las clases minoritarias. Por lo tanto, para probar un conjunto de datos tan desequilibrado, consideramos la matriz de confusión.
Estructura de la Matriz de Confusión
El tamaño de la matriz es directamente proporcional al número de clases de salida. Es una matriz cuadrada en la que asumimos los encabezados de las columnas como valores reales y los encabezados de las filas como predicciones del modelo. Los valores que son verdaderos y predichos como verdaderos por el modelo son Verdaderos positivos (TP) , las predicciones correctas de valores negativos son Verdaderos negativos (TN) , los valores que fueron negativos pero predichos como verdaderos son Falsos positivos (FP) y los valores positivos predichos como negativos son Falsos Negativos (FN) . Echa un vistazo a esta imagen:
Leer: Tipos de algoritmos de clasificación en aprendizaje automático
¿Qué podemos aprender de esto?
Surge una pregunta válida sobre qué podemos hacer con esta matriz. Hay algunas terminologías importantes basadas en esto:

- Precisión: Es la porción de valores que el modelo identifica como correctos y que son relevantes para la solución del enunciado del problema. También podemos citar esto como valores, que son una parte de los resultados positivos totales proporcionados por el modelo y son positivos. Por lo tanto, podemos dar su fórmula como TP/ (TP + FP).
- Recordar: Es la porción de valores que el modelo identifica correctamente como positivos. También se denomina Tasa de verdaderos positivos o Sensibilidad. Su fórmula resulta ser TP/ (TP+FN).
- Puntaje F-1: Es la media armónica de Precisión y Recall. Significa que si tuviéramos que comparar dos modelos, esta métrica suprimirá los valores extremos y considerará tanto los falsos positivos como los falsos negativos al mismo tiempo. Se puede citar como 2*Precisión*Recuperación/ (Precisión+Recuperación).
- Precisión: Es la porción de valores que se identifican correctamente independientemente de si son positivos o negativos. Significa que todos los Verdaderos positivos y Verdaderos negativos están incluidos en esto. La fórmula para esto es (TP+TN)/ (TP+TN+FP+FN).
De todos los términos, precisión y recuperación son los más utilizados. Su compensación es una medida útil del éxito de una predicción. Se supone que el modelo deseado tiene alta precisión y alta recuperación, pero esto es solo en datos perfectamente separables. En casos de uso práctico, los datos están muy desorganizados y desequilibrados.

¿Cómo crear código para Confusion Matrix en Python?
La biblioteca sklearn proporciona una variedad de funcionalidades para realizar todas las tareas de aprendizaje automático con la máxima precisión y casi todo se ha implementado aquí. Considere el famoso conjunto de datos Iris con todas las declaraciones de importación ya realizadas, el código para la matriz de confusión sería:
iris = conjuntos de datos.load_iris()
X = iris.datos
y = iris.objetivo
class_names = iris.target_names
X_train, X_test, y_train, y_test = train_test_split (X, y, random_state = 0 )
clasificador = svm.SVC (núcleo = 'lineal' , C = 0.01 ) . ajuste (tren_X, tren_y)
plot_confusion_matrix(clasificador, X_test, y_test,display_labels = class_names,cmap = plt . cm . Blues)
Nota: La matriz devuelta por esto tiene lados invertidos, aquí a la izquierda tenemos valores reales y en la parte superior, tenemos valores pronosticados. Si desea evitar confusiones, ejecute esta función para obtener un resumen detallado (informe de clasificación) en lugar de calcularlo manualmente:

print(classification_report(y_true=y_test, y_pred=y_pred, target_names=class_names))
Lea también: Algoritmo de aprendizaje profundo
¿Cuál usar y dónde?
Esta es la pregunta más común que surge al modelar los datos y la solución se encuentra en el dominio del enunciado del problema. Considere estos dos casos:
- Suponga que está prediciendo si la persona sufrirá un paro cardíaco. En este escenario, no puede permitirse ninguna clasificación errónea y todas las predicciones realizadas deberían ser precisas. Dicho esto, el costo de los falsos negativos es alto, por lo que la persona era propensa a atacar, pero se predijo que era segura. Estos casos deben evitarse. En estas situaciones, necesitamos un modelo con un alto recuerdo.
- Supongamos que un motor de búsqueda proporciona resultados aleatorios que el modelo predice como positivos, entonces hay muy pocas posibilidades de que el usuario confíe en él. Por lo tanto, en este escenario, necesitamos un modelo con alta precisión para que la experiencia del usuario mejore y el sitio web crezca en la dirección correcta.
Conclusión
La matriz de confusión es un gran método para evaluar un modelo de clasificación. Brinda una idea real de la precisión con la que el modelo ha clasificado las clases en función de las entradas proporcionadas y cómo esta clase puede clasificarse erróneamente.
Si está interesado en obtener más información sobre el aprendizaje automático, consulte el Diploma PG en aprendizaje automático e IA de IIIT-B y upGrad, que está diseñado para profesionales que trabajan y ofrece más de 450 horas de capacitación rigurosa, más de 30 estudios de casos y asignaciones, IIIT- B Estado de exalumno, más de 5 proyectos prácticos finales prácticos y asistencia laboral con las mejores empresas.