Ir al contenido principal

Diagrama de temas

    • 6.2 Evaluar modelos de clasificación



      • Métricas de evaluación

        En el aprendizaje automático, las métricas de evaluación se usan para evaluar la habilidad, el rendimiento y las características de un modelo. Para ello, miden algún aspecto de un modelo o sus resultados. Hay muchas métricas de evaluación, cada una basada en una medición diferente. Los profesionales no se limitan a usar solo una métrica, sino que cada tipo de resultado de aprendizaje automático (regresión, clasificación, agrupación en clústeres, etc.) tiene sus propias métricas. Por lo tanto, si está entrenando un modelo de clasificación, no será muy bueno usar una métrica de agrupación en clústeres.

        Las métricas de evaluación son fundamentales para desarrollar cualquier tipo de modelo de aprendizaje automático, sin importar si el modelo está supervisado o no. Las métricas supervisadas tienden a evaluar las estimaciones que un modelo realiza en los conjuntos de validación o prueba. Dado que estos conjuntos están etiquetados y no se utilizaron para entrenar el modelo, puede averiguar qué tan cerca está el modelo de la verdad del terreno. Por lo general, las métricas notifican este nivel de rendimiento en conjunto, en otras palabras, no evaluará cómo se desempeña el modelo en un solo ejemplo de datos, sino todos los ejemplos de datos del conjunto combinados. Las métricas no supervisadas tienden a examinar las características del modelo, ya que no hay etiquetas con las que medir el rendimiento.

        Evaluar el rendimiento del modelo es importante por un par de razones principales. En primer lugar, puede determinar si está o no "satisfecho" con el modelo de acuerdo con sus metas o expectativas. Si el modelo no cumple con el nivel deseado de rendimiento, puede abandonarlo. Como alternativa, la otra razón para utilizar las métricas de evaluación es fundamentar el proceso de ajuste. En lugar de ajustar los hiperparámetros al azar y ver qué sucede, podrá ajustar esos hiperparámetros para maximizar una o más métricas. La meta final de este proceso es mejorar iterativamente el modelo hasta que cumpla con sus expectativas.

        Ley de Goodhart

        La Ley de Goodhart, llamada así por el economista Charles Goodhart, puede resumirse en pocas palabras como: "Cuando una medida se convierte en un objetivo, deja de ser una buena medida". En otras palabras, si se concentra demasiado en lograr buenos resultados para una medición específica, entonces la medición en sí se convierte en la meta. Si intenta ejercer demasiado control sobre un sistema a través de una métrica, esto podría conducir a una falsa sensación de logro. En el campo del aprendizaje automático, puede optimizar un modelo para que funcione muy bien en una métrica, pero también podría tener un rendimiento deficiente en otras de igual importancia. La habilidad general del modelo podría verse afectada como resultado. Por lo tanto, a medida que aprende sobre las diversas métricas en el aprendizaje automático, tenga en cuenta que no hay una métrica "perfecta" desde el punto de vista objetivo para cada circunstancia, y que es posible que deba considerar varias métricas en el proceso de evaluación.

      • Rendimiento del modelo de clasificación

        Supongamos que usted tiene un clasificador que intenta determinar si un paciente médico tiene o no cáncer de páncreas sin tener que realizar procedimientos de diagnóstico invasivos. El modelo se entrenó en un conjunto de datos histórico donde cada ejemplo es un paciente y cada característica es algún aspecto de ese paciente (por ejemplo, edad, peso, presencia de síntomas, etc.). Cada paciente es etiquetado en cuanto a si tenía o no cáncer de páncreas. Por lo tanto, el modelo clasifica a los pacientes con cáncer como "Sí" (positivo) y a los pacientes sin cáncer como "No" (negativo). Al entrenar un clasificador, hay varias maneras en que el modelo puede tener éxito o no, como se muestra en esta tabla.

        Etiqueta real (correcta) Etiqueta estimada Resultado del modelo Evaluación
        Correcto Verdadero positivo (VP)
        No No Correcto Verdadero negativo (VN)
        No Error Falso positivo (FP)
        No Error Falso negativo (FN)

      • Consideraciones al elegir métricas de clasificación


        Al entrenar un clasificador, debe evaluar qué tan bien funciona, no solo cuando logra identificar aspectos positivos o negativos, sino también cuando no identifica correctamente los positivos y negativos. Idealmente, cada estimación realizada por el modelo sería correcta. Pero en el mundo real, eso rara vez es posible, por lo que debe ajustar el modelo para hacer compromisos que satisfagan sus necesidades. El modelo se ajusta para garantizar identificaciones correctas donde son esenciales, a expensas de permitir fallos donde se pueden tolerar.

        Por ejemplo, en algunas situaciones, podría ser mejor tener un modelo que garantice que no habrá falsos negativos a expensas de permitir que quizás el 30 % de las estimaciones positivas sean falsas. Probablemente le gustaría que su modelo de aprendizaje automático identificara a cada paciente que tiene cáncer antes de que la enfermedad se vuelva intratable. Consulte las siguientes posibilidades:

        1. El paciente tiene cáncer y el modelo piensa correctamente que sí (verdadero positivo). Los médicos luego realizan procedimientos de diagnóstico para la confirmación. Una vez que se confirma la presencia de la enfermedad, los médicos pueden comenzar el tratamiento temprano, aumentando las posibilidades de supervivencia del paciente.

        2. El paciente no tiene cáncer, pero el modelo piensa incorrectamente que sí (falso positivo). Los médicos luego realizan más procedimientos de diagnóstico para la confirmación. La confirmación falla, por lo que los médicos no toman ninguna otra medida.

        El beneficio del escenario 1 (tratamiento temprano de la enfermedad) supera el costo del escenario 2 (someter innecesariamente a un paciente a procedimientos invasivos). Al optimizar para el escenario 1, aumenta los verdaderos positivos, lo que reduce los falsos negativos. Esto también tiene el efecto desfavorable de aumentar los falsos positivos, pero eso es una compensación aceptable en esta situación.

        En otras situaciones, podría ser mejor optimizar diferentes valores de verdad. Tener varias formas de medir el rendimiento del modelo le ayudará a optimizarlo para una situación determinada.

      • Matriz de confusión

        Una matriz de confusión es un método para visualizar los resultados reales de un problema de clasificación. Le ayuda a examinar más fácilmente las dimensiones de un problema de clasificación, así como a identificar verdaderos positivos/negativos y falsos positivos/negativos dentro de los datos estimados. En una matriz de confusión, el número de estimaciones se compara con el número de valores reales en un formato de tabla. Hay varias maneras de estructurar esta tabla; el siguiente es un ejemplo, utilizando un modelo con dos clases (un clasificador binario).


        Figura 1. Una plantilla de matriz de confusión.


        Recordemos que el ejemplo mencionado anteriormente tiene que ver con la determinación de la presencia de cáncer en pacientes. Después de entrenar el modelo en los datos, hará estimaciones que terminan siendo verdaderas o falsas y negativas o positivas. Conectando esos valores a una matriz de confusión, podría obtener algo como lo siguiente.

        Figura 2. Una matriz de confusión de determinaciones de cáncer.

        Usando una tabla como esta, es mucho más fácil identificar la prevalencia de errores en las decisiones del modelo. Para resumir el ejemplo:

             Determinaron a 513 pacientes correctamente para no tener cáncer (verdaderos negativos).

             Determinaron a 8 pacientes incorrectamente para tener cáncer cuando no lo hicieron realmente (falsos positivos).

             Determinaron incorrectamente que 4 pacientes no tenían cáncer cuando realmente lo tenían (falsos negativos).

             Determinaron correctamente que 17 pacientes tenían cáncer (verdaderos positivos).

      • Exactitud, precisión y recuperación

        La exactitud es una medida de la frecuencia con la que cada clasificación se considera positiva o negativa desde el punto de vista correcto.

        Figura 1. Cómo calcular la exactitud.


        Como se muestra aquí, la exactitud es el número de estimaciones negativas correctas dividido por todas las estimaciones realizadas. En otras palabras, la exactitud puede expresarse como:


        Si la exactitud es perfecta (todas las estimaciones son correctas), se medirá como 1,0. Si la mitad de las predicciones son correctas, la exactitud será de 0,5. Estos se pueden convertir en porcentajes según sea necesario.

        La exactitud es intuitiva, y la palabra en sí tiene la connotación de ser muy deseable. Sin embargo, la exactitud a menudo demuestra ser una medida poco confiable del rendimiento del modelo. Considere el ejemplo de la identificación del cáncer de páncreas en pacientes. Un modelo entrenado con estos datos probablemente terminaría con un gran número de verdaderos negativos y casi ningún verdadero positivo, falsos positivos o falsos negativos, porque el cáncer de páncreas es relativamente raro en un muestreo aleatorio de personas.

        Como resultado, la exactitud es extremadamente alta, casi el 98 %. Esto hace que la precisión sea casi inútil, ya que el modelo de aprendizaje automático no será mejor para predecir los raros casos en los que un paciente tiene cáncer de páncreas. Por lo tanto, la exactitud solo es útil en conjuntos de datos donde los datos de la etiqueta están equilibrados.

        La precisión es una medida de la frecuencia con la que los positivos identificados por el modelo de aprendizaje son verdaderos positivos.


        Figura 2. Cómo calcular la precisión.

        Como se muestra aquí, la precisión es el número de estimaciones positivas correctas dividido por todas las estimaciones positivas realizadas. En otras palabras, la precisión puede expresarse como:

        Al igual que la exactitud, la precisión se puede expresar como un número de 0 a 1,0 o como un porcentaje.

        La precisión suele ser más útil que la exactitud, especialmente en conjuntos de datos asimétricos, pero aún debe tener en cuenta el contexto de los datos y los resultados que está buscando. Usando el conjunto de datos, el modelo determinó correctamente que 17 pacientes tenían cáncer. También determinó que 8 pacientes tenían cáncer cuando en realidad no lo tenían. Por lo tanto, la precisión sería 17 / 17 + 8, o 68 %. Esto es más útil que la exactitud, porque tiene en cuenta la naturaleza desequilibrada del conjunto de datos con respecto a la etiqueta. Sin embargo, el problema con la precisión en este caso es que no aborda los casos en los que un paciente tiene cáncer, pero el modelo no indica que lo haga (es decir, falsos negativos). Dado lo grave que es el cáncer de páncreas, si el modelo no identifica ni siquiera a un solo paciente que tiene la enfermedad, el modelo puede considerarse un fracaso. Incluso si usted decide tolerar más de un caso perdido de cáncer, la precisión aún se queda corta en la evaluación del rendimiento de este modelo.

        La recuperación, también denominada sensibilidad, es el porcentaje de instancias positivas encontradas por un modelo de aprendizaje automático en comparación con todas las instancias relevantes. Una instancia "relevante" es cualquier instancia que es realmente verdadera, incluso si la estimación es incorrecta.


        Figura 3. Cómo calcular la recuperación.

        Como se muestra aquí, la memoria es el número de estimaciones positivas correctas dividido por el número de estimaciones positivas correctas más el número de estimaciones negativas incorrectas. En otras palabras, la recuperación puede expresarse como:

        Al igual que la exactitud y la precisión, la recuperación se puede expresar como un número de 0 a 1,0 o como un porcentaje.

        Como ha visto, es posible que la precisión no sea la forma más útil de medir qué tan bueno es un modelo de aprendizaje automático para identificar a los pacientes con cáncer de páncreas. Vamos a intentar la recuperación. En el ejemplo, supongamos que el modelo pudo determinar correctamente que 17 pacientes tenían la enfermedad. El modelo no pudo identificar que 4 pacientes más tenían la enfermedad. La recuperación sería 17 / 17 + 4, o alrededor del 81 %. Ahora, tiene una mejor idea de qué tan bien funciona su modelo con respecto a su propósito final: minimizar el número de personas con cáncer de páncreas que no se diagnostican. Esto se debe a que la recuperación se centra en los falsos negativos. Técnicamente, el modelo podría mejorar su memoria al predecir que todos los pacientes tienen cáncer, lo que llevaría a una recuperación del 100 %, pero esto haría que el modelo fuera inútil para establecer prioridades sobre el diagnóstico y el tratamiento manuales. Además, la recuperación no minimiza los falsos positivos, así como lo hace la precisión.

      • Especificidad

        La especificidad, también llamada tasa negativa verdadera (TNR), es una medida de la frecuencia con la que el modelo identifica los negativos reales.

        Figura 1. Cómo calcular la especificidad.

        Como se muestra aquí, la especificidad es el número de estimaciones negativas correctas dividido por el número total de negativos reales. En otras palabras, la especificidad puede expresarse como:


        Al igual que las otras métricas de clasificación que ha visto hasta ahora, la especificidad se puede expresar como un número de 0 a 1,0 o como un porcentaje.

        En el ejemplo del cáncer de páncreas, usted calcularía especificidad como 513 / 513 + 8, o alrededor del 98 %. Sin embargo, la especificidad es útil para cuando se necesita maximizar la cantidad de negativos verdaderos que produce el modelo. Además, al igual que la precisión, no funciona tan bien cuando la etiqueta del conjunto de datos está desequilibrada. Por lo tanto, el ejemplo de detección de cáncer no es realmente un buen candidato para la especificidad.

        Considere el ejemplo de videojuego de antes, donde tiene un modelo que predice si un jugador recomendará o no el juego a otras personas. La etiqueta es positiva cuando el jugador recomienda el juego, y negativa cuando no lo hace. Las respuestas etiquetadas parecen equilibradas, donde aproximadamente la mitad de los jugadores recomendarán el juego. En este caso, es posible que desee que su modelo maximice los verdaderos negativos para que pueda ofrecer más fácilmente elementos de bonificación especiales en el juego al segmento de jugadores que no recomendarán el juego, o tomar alguna otra acción que, con suerte, los anime a correr la voz sobre su nuevo juego. Por lo tanto, la especificidad podría ser una buena métrica para optimizar.

      • Puntuación F1

        Como ha visto, la precisión y la recuperación son más útiles en conjuntos de datos desequilibrados, pero vienen con una compensación. Normalmente, cuando se hace hincapié en uno, se hace a expensas de restar énfasis al otro. A veces, como en el ejemplo del diagnóstico de cáncer, está relativamente claro cuál es más útil. Sin embargo, no siempre es así. Considere una tarea de aprendizaje automático en la que desea determinar si una novela está o no en el género de ciencia ficción, dada una breve muestra de texto. Un falso positivo (por ejemplo, clasificar una novela como ciencia ficción cuando no lo es) es tan indeseable como un falso negativo (por ejemplo, no clasificar una novela como ciencia ficción aunque lo sea); ninguno de los dos es particularmente peor. Entonces, ¿cuál es la mejor manera de medir el rendimiento en este caso?

        La puntuación F₁ ayuda a encontrar una combinación óptima de precisión y recuperación. La puntuación F1 esencialmente solo toma un promedio ponderado de precisión y recuperación. La media ponderada reduce el efecto de los valores extremos. La puntuación F1 se puede expresar como:

        Supongamos que 143 novelas se clasificaron correctamente como ciencia ficción y 21 novelas se clasificaron incorrectamente como ciencia ficción. La precisión es de ~87 %. Si 38 novelas no se clasificaran como ciencia ficción a pesar de que lo son, entonces la recuperación sería de ~79 %. Conecte estos valores en la fórmula de la siguiente manera:


        La puntuación F1 resultante es ~0,828 o alrededor del 83 %.

        Para reiterar, se prefiere la puntuación F1 cuando los valores de etiqueta del conjunto de datos no se distribuyen uniformemente y ni la precisión ni la recuperación son más útiles que la otra.

        Métricas de clasificación adicionales

        Además de las métricas fundamentales que se acaban de analizar, hay varias otras métricas que puede usar para evaluar un clasificador. Por ejemplo, una curva de característica de funcionamiento del receptor (ROC) se utiliza para trazar visualmente la relación entre la tasa de verdaderos positivos (recuperación) y la tasa de falsos positivos. Para obtener una lista más completa de las métricas de clasificación, consulte este sitio.

      • Evaluación de modelos de clasificación


        Archivo de datos

        /home/student/ITSAI/Classification/data/newdata.csv


        Antes de empezar

        Classification-Boston.ipynb está abierto en Jupyter Notebook.


        Nota: Si cerró Jupyter Notebook desde que completó la actividad anterior, deberá reiniciar Jupyter Notebook y volver a abrir el archivo. Para asegurarse de que todos los objetos y la salida de Python están en el estado correcto para comenzar esta actividad:


        1. Seleccione Kernel→Reiniciar & y Borrar salida.
        2. Seleccione Reiniciar y borrar todas las salidas.
        3. Desplácese hacia abajo y seleccione la celda con la etiqueta Comparar métricas de evaluación para cada modelo.
        4. Seleccione Celda→ Ejecutar todo lo anterior.

        Escenario

        Ahora que entrenó y ajustó sus modelos, desea evaluar su rendimiento utilizando algo más que precisión. Hay muchas métricas de clasificación útiles que podrían ser relevantes para sus datos.
        Una vez que haya evaluado los modelos, deberá elegir el que mejor funcione y lo usará para realizar predicciones sobre nuevos datos que el modelo aún no vio.


        -------------------------------------------------------------------------------------------------------------------------------------------------------------

        1. Compare las métricas de evaluación para cada modelo.
        2. Desplácese hacia abajo y vea la celda titulada Comparar las métricas de evaluación para cada modelo y examine la lista de código que aparece debajo de ella.

        Este código comparará las puntuaciones de precisión de los cuatro modelos que creó en el tema anterior.

        2. Ejecute la celda de código.

        3. Examine el resultado.

        La puntuación de precisión se muestra para cada modelo. La tabla se ordena por la puntuación de precisión más alta. El modelo de bosque aleatorio tiene la puntuación más alta, pero el árbol de decisión y los modelos de regresión logística están cerca.

        4. En la siguiente celda de código, examine el código.

        Este código comparará las puntuaciones de exactitud de los cuatro modelos.

        5. Ejecute la celda de código.

        6. Examine el resultado.

        La puntuación de exactitud se muestra para cada modelo. El modelo de bosque aleatorio tiene la puntuación más alta, pero el árbol de decisión y los modelos de regresión logística están cerca. El modelo k-NN tiene una puntuación comparativamente baja.

        7. En la siguiente celda de código, examine el código.

        Este código comparará las puntuaciones de recuperación de los cuatro modelos.

        8. Ejecute la celda de código.

        9. Examine el resultado.

        La puntuación de recuperación se muestra para cada modelo. Nuevamente, el modelo de bosque aleatorio tiene la puntuación más alta, pero el modelo de árbol de decisión y el modelo de regresión logística están empatados en segundo lugar. El modelo k-NN vuelve a tener la puntuación más baja.

        10. En la siguiente celda de código, examine el código.

        Este código comparará la puntuación F1 de los cuatro modelos.

        11. Ejecute la celda de código.

        12. Examine el resultado.

        La puntuación F1 se muestra para cada modelo. El modelo de bosque aleatorio tiene la puntuación más alta, pero el modelo de árbol de decisión y el modelo de regresión logística están empatados en segundo lugar. El modelo k-NN tiene la puntuación más baja.

        El modelo de bosque aleatorio obtuvo la puntuación más alta en cada una de estas métricas, lo que indica que probablemente sea el modelo óptimo para usar (al menos de estos cuatro modelos).


        --------------------------------------------------------------------------------------------------------------------------------------------------------
        2. Genere una matriz de confusión.
        1. Desplácese hacia abajo y vea la celda titulada Generar una matriz de confusión y examine la lista de código debajo de ella.

        Se centrará en su mejor modelo, el modelo de bosque aleatorio, para el resto de sus esfuerzos de evaluación. Este código mostrará una matriz de confusión de los valores de clasificación verdaderos.

        2. Ejecute la celda de código.

        3. Examine el resultado.

        Esta matriz de confusión muestra los valores brutos para cada evaluación verdadera. Sin embargo, será más fácil de leer cuando use una función de visualización para diagramar la matriz.

        4. En la siguiente celda de código, examine el código.

        La matriz de confusión se etiquetará y tendrá un mapa de color para indicar la magnitud en cada cuadrante. Además, los valores se normalizarán para que muestren un porcentaje de la fila total, en lugar de los valores sin formato.

        5. Ejecute la celda de código.

        6. Examine el resultado.

        Los resultados pueden interpretarse de la siguiente manera:

        En el cuadrante superior izquierdo, el modelo predijo correctamente que el 93 % de los valores False reales (por ejemplo, los pasajeros que perecieron) eran False. Estos son los verdaderos valores negativos.
        En el cuadrante superior derecho, el modelo predijo incorrectamente que el 7 % restante de los valores False reales eran True. Estos son los falsos positivos.
        En el cuadrante inferior izquierdo, el modelo predijo incorrectamente que el 30 % de los valores True reales (por ejemplo, los pasajeros que sobrevivieron) eran False. Estos son los falsos negativos.
        En el cuadrante inferior derecho, el modelo predijo correctamente que el 70 % restante de los valores True reales eran True. Estos son los verdaderos valores positivos.

        Esto concuerda con las puntuaciones que vio anteriormente. El mayor "error" está en el cuadrante inferior izquierdo, que muestra los falsos negativos. A medida que aumentan los falsos negativos, la puntuación de recuperación disminuye.


        -------------------------------------------------------------------------------------------------------------------------------------------------------------
        3. Realice predicciones sobre los nuevos datos con el modelo de bosque aleatorio.
        1. Desplácese hacia abajo y vea la celda titulada Realizar predicciones en los nuevos datos con el modelo de bosque aleatorio y examine la lista de código debajo de ella.

        Este código cargará el archivo newdata.csv en un archivo DataFrame.

        2. Ejecute la celda de código.

        3. Examine el resultado.

        418 registros se cargan desde newdata.csv. Recuerde que se trata de un conjunto de datos nuevos, independiente de los conjuntos de entrenamiento y validación. Este conjunto no incluye valores de etiqueta (ActualSurvival). Usted no conoce el destino de estos pasajeros. El modelo de aprendizaje automático está diseñado para hacer predicciones para este tipo de datos.
        4. En la siguiente celda de código, examine el código.

        Este código utilizará los datos nuevos y el modelo de bosque aleatorio para predecir la supervivencia de cada pasajero y la probabilidad de que pereció o sobrevivió.

        5. Ejecute la celda de código.

        6. Examine el resultado.

        El modelo de bosque aleatorio predijo valores para este nuevo conjunto de datos, cumpliendo su propósito final de predecir quién habría sobrevivido y quién habría perecido a bordo del Titanic.


        ------------------------------------------------------------------------------------------------------------------------------------------------------------------------

        4. Cierre este kernel de Jupyter Notebook y la máquina virtual.
        1. En Firefox, seleccione la pestaña Classification.ipynb.
        2. En el menú, seleccione Kernel→Cerrar.
        3. En el cuadro de diálogo ¿Cerrar kernel?, seleccione Cerrar.
        4. Cierre Firefox.
        5. Cierre la ventana Terminal que ejecuta el programa Jupyter Notebook.
        6. En el menú VirtualBox VM en la parte superior de la pantalla, seleccione Equipo→Apagar ACPI y, si es necesario, seleccione Apagar. Compruebe que la ventana de la VM se cierre.
        7. Cierre la ventana Oracle VM VirtualBox Manager.