Evaluación del Modelo
División de los datos
Después de entrenar una red neuronal, es fundamental evaluar qué tan bien se desempeña con datos no vistos. Esta evaluación ayuda a determinar si el modelo ha aprendido patrones significativos o simplemente ha memorizado los ejemplos de entrenamiento. Para ello, el conjunto de datos se divide en dos partes:
- Conjunto de entrenamiento — utilizado para entrenar la red neuronal ajustando sus pesos y sesgos mediante retropropagación;
- Conjunto de prueba — utilizado después del entrenamiento para evaluar qué tan bien el modelo generaliza a datos nuevos y no vistos.
Una división común es 80% para entrenamiento y 20% para prueba, aunque esta proporción puede variar según el tamaño y la complejidad del conjunto de datos.
La división de los datos normalmente se realiza utilizando la función train_test_split() del módulo sklearn.model_selection:
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=...)
El parámetro test_size determina la proporción de datos reservados para la prueba. Por ejemplo, establecer test_size=0.1 significa que el 10% de los datos se utilizarán para prueba, mientras que el 90% se utilizarán para entrenamiento.
Si el modelo tiene buen desempeño en el conjunto de entrenamiento pero un desempeño deficiente en el conjunto de prueba, puede estar sobreajustando — aprendiendo patrones demasiado específicos de los datos de entrenamiento en lugar de generalizar a nuevos ejemplos. El objetivo es lograr buen desempeño en ambos conjuntos, asegurando que el modelo generalice correctamente.
Una vez que los datos se dividen y el modelo se entrena, el rendimiento debe medirse utilizando métricas de evaluación apropiadas, que dependen de la tarea de clasificación específica.
Métricas de clasificación
Para problemas de clasificación, se pueden utilizar varias métricas clave para evaluar las predicciones del modelo:
- Precisión global (accuracy);
- Precisión (precision);
- Sensibilidad (recall);
- Puntaje F1 (F1-score).
Dado que un perceptrón realiza clasificación binaria, crear una matriz de confusión ayudará a comprender mejor estas métricas.
Una matriz de confusión es una tabla que resume el desempeño de clasificación del modelo comparando las etiquetas predichas con las reales. Proporciona información sobre la cantidad de predicciones correctas e incorrectas para cada clase (1 y 0).
Precisión mide la proporción de muestras clasificadas correctamente sobre el total. Si un modelo clasifica correctamente 90 de 100 imágenes, su precisión es 90%.
accuracy=allcorrect=TP+TN+FP+FNTP+TNAunque la precisión es útil, puede que no siempre proporcione una visión completa, especialmente en conjuntos de datos desbalanceados. Por ejemplo, en un conjunto donde 95% de las muestras pertenecen a una clase, un modelo podría alcanzar 95% de precisión simplemente prediciendo siempre la clase mayoritaria, sin realmente aprender nada útil. En estos casos, la precisión positiva, la exhaustividad o la puntuación F1 pueden ser más informativas.
Precisión positiva es el porcentaje de casos positivos correctamente predichos sobre todos los positivos predichos. Esta métrica es especialmente útil cuando los falsos positivos son costosos, como en la detección de spam o fraude.
precision=predicted positivecorrect positive=TP+FPTPExhaustividad (sensibilidad) mide cuántos de los casos realmente positivos son identificados correctamente por el modelo. Una alta exhaustividad es esencial en escenarios donde se deben minimizar los falsos negativos, como en diagnósticos médicos.
recall=all positivecorrect positive=TP+FNTPF1-score es la media armónica de la precisión y el recall, proporcionando una medida equilibrada cuando tanto los falsos positivos como los falsos negativos son importantes. Esto es útil cuando el conjunto de datos está desbalanceado, es decir, cuando una clase aparece significativamente más que la otra.
F1=precision+recall2×precision×recall1. ¿Cuál es el propósito principal de dividir tu conjunto de datos en conjuntos de entrenamiento y prueba?
2. ¿Por qué podría preferirse el F1-score sobre la precisión en un conjunto de datos desbalanceado?
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Awesome!
Completion rate improved to 4
Evaluación del Modelo
Desliza para mostrar el menú
División de los datos
Después de entrenar una red neuronal, es fundamental evaluar qué tan bien se desempeña con datos no vistos. Esta evaluación ayuda a determinar si el modelo ha aprendido patrones significativos o simplemente ha memorizado los ejemplos de entrenamiento. Para ello, el conjunto de datos se divide en dos partes:
- Conjunto de entrenamiento — utilizado para entrenar la red neuronal ajustando sus pesos y sesgos mediante retropropagación;
- Conjunto de prueba — utilizado después del entrenamiento para evaluar qué tan bien el modelo generaliza a datos nuevos y no vistos.
Una división común es 80% para entrenamiento y 20% para prueba, aunque esta proporción puede variar según el tamaño y la complejidad del conjunto de datos.
La división de los datos normalmente se realiza utilizando la función train_test_split() del módulo sklearn.model_selection:
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=...)
El parámetro test_size determina la proporción de datos reservados para la prueba. Por ejemplo, establecer test_size=0.1 significa que el 10% de los datos se utilizarán para prueba, mientras que el 90% se utilizarán para entrenamiento.
Si el modelo tiene buen desempeño en el conjunto de entrenamiento pero un desempeño deficiente en el conjunto de prueba, puede estar sobreajustando — aprendiendo patrones demasiado específicos de los datos de entrenamiento en lugar de generalizar a nuevos ejemplos. El objetivo es lograr buen desempeño en ambos conjuntos, asegurando que el modelo generalice correctamente.
Una vez que los datos se dividen y el modelo se entrena, el rendimiento debe medirse utilizando métricas de evaluación apropiadas, que dependen de la tarea de clasificación específica.
Métricas de clasificación
Para problemas de clasificación, se pueden utilizar varias métricas clave para evaluar las predicciones del modelo:
- Precisión global (accuracy);
- Precisión (precision);
- Sensibilidad (recall);
- Puntaje F1 (F1-score).
Dado que un perceptrón realiza clasificación binaria, crear una matriz de confusión ayudará a comprender mejor estas métricas.
Una matriz de confusión es una tabla que resume el desempeño de clasificación del modelo comparando las etiquetas predichas con las reales. Proporciona información sobre la cantidad de predicciones correctas e incorrectas para cada clase (1 y 0).
Precisión mide la proporción de muestras clasificadas correctamente sobre el total. Si un modelo clasifica correctamente 90 de 100 imágenes, su precisión es 90%.
accuracy=allcorrect=TP+TN+FP+FNTP+TNAunque la precisión es útil, puede que no siempre proporcione una visión completa, especialmente en conjuntos de datos desbalanceados. Por ejemplo, en un conjunto donde 95% de las muestras pertenecen a una clase, un modelo podría alcanzar 95% de precisión simplemente prediciendo siempre la clase mayoritaria, sin realmente aprender nada útil. En estos casos, la precisión positiva, la exhaustividad o la puntuación F1 pueden ser más informativas.
Precisión positiva es el porcentaje de casos positivos correctamente predichos sobre todos los positivos predichos. Esta métrica es especialmente útil cuando los falsos positivos son costosos, como en la detección de spam o fraude.
precision=predicted positivecorrect positive=TP+FPTPExhaustividad (sensibilidad) mide cuántos de los casos realmente positivos son identificados correctamente por el modelo. Una alta exhaustividad es esencial en escenarios donde se deben minimizar los falsos negativos, como en diagnósticos médicos.
recall=all positivecorrect positive=TP+FNTPF1-score es la media armónica de la precisión y el recall, proporcionando una medida equilibrada cuando tanto los falsos positivos como los falsos negativos son importantes. Esto es útil cuando el conjunto de datos está desbalanceado, es decir, cuando una clase aparece significativamente más que la otra.
F1=precision+recall2×precision×recall1. ¿Cuál es el propósito principal de dividir tu conjunto de datos en conjuntos de entrenamiento y prueba?
2. ¿Por qué podría preferirse el F1-score sobre la precisión en un conjunto de datos desbalanceado?
¡Gracias por tus comentarios!