Processing math: 100%

Herramientas de usuario

Herramientas del sitio


clase:iabd:pia:2eval:tema08.metricas_derivadas

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
clase:iabd:pia:2eval:tema08.metricas_derivadas [2025/03/02 11:47]
admin [8.c Métricas rendimiento general de clasificación]
clase:iabd:pia:2eval:tema08.metricas_derivadas [2025/05/25 22:10] (actual)
admin [8.c Métricas rendimiento general de clasificación]
Línea 52: Línea 52:
 ^  Métricas independientes de la prevalencia  ^^ ^  Métricas independientes de la prevalencia  ^^
 ^  Nombre  ^  Fórmula  ^ ^  Nombre  ^  Fórmula  ^
-| [[#Informedness|Informedness normalizado]]  |  Sensibilidad+Especificidad2  |+| [[#Informedness|nInformedness]]  |  Sensibilidad+Especificidad2  |
 | [[#Balanced Accuracy]] Sensibilidad+Especificidad2  | | [[#Balanced Accuracy]] Sensibilidad+Especificidad2  |
 | [[#Prevalence threshold (PT)]]   | 1EspecificidadSensibilidad+1Especificidad  | | [[#Prevalence threshold (PT)]]   | 1EspecificidadSensibilidad+1Especificidad  |
Línea 61: Línea 61:
 | [[#Accuracy]] Especificidad+(SensibilidadEspecificidad)Prevalencia  | | [[#Accuracy]] Especificidad+(SensibilidadEspecificidad)Prevalencia  |
 | [[#Matthews correlation coefficient (MCC)|nMCC]] Sensibilidad+Especificidad1Prevalencia1PrevalenciaSensibilidadEspecificidad+11PrevalenciaPrevalenciaEspecificidadSensibilidad+1+12  | | [[#Matthews correlation coefficient (MCC)|nMCC]] Sensibilidad+Especificidad1Prevalencia1PrevalenciaSensibilidadEspecificidad+11PrevalenciaPrevalenciaEspecificidadSensibilidad+1+12  |
-| [[#Markedness]]  | VPP+VPN2  |+| [[#Markedness|nMarkedness]]  | VPP+VPN2  |
  
 ^  Métricas para datos desbalaceados  ^^ ^  Métricas para datos desbalaceados  ^^
Línea 67: Línea 67:
 | [[#Jaccard]] PrecisionSensibilidadPrecision+SensibilidadPrecisionSensibilidad=TPTP+FP+FN  | | [[#Jaccard]] PrecisionSensibilidadPrecision+SensibilidadPrecisionSensibilidad=TPTP+FP+FN  |
 | [[#F1-score]] 2SensibilidadPrecisionSensibilidad+Precision=TP(TP+FP)+(TP+FN)2  | | [[#F1-score]] 2SensibilidadPrecisionSensibilidad+Precision=TP(TP+FP)+(TP+FN)2  |
-| [[#Fowlkes-Mallows (FM)]]  | $$\sqrt{Sensibilidad*Precisión}=\frac{TP}{\sqrt{(TP+FN)*(TP+FP)}}$$  |+| [[#Fowlkes-Mallows (FM)]]  | $$\sqrt{Sensibilidad*Precisión}=\frac{TP}{\sqrt{(TP+FP\cdot (TP+FN)}}$$  |
 | [[#PR-AUC]]  | <sxh python>pr_auc=average_precision_score(y_true,y_score)</sxh>  | | [[#PR-AUC]]  | <sxh python>pr_auc=average_precision_score(y_true,y_score)</sxh>  |
  
Línea 581: Línea 581:
 <sxh python> <sxh python>
 from sklearn.metrics import roc_auc_score from sklearn.metrics import roc_auc_score
 +
 +y_true = np.array([0, 0, 1, 1])
 +y_score = np.array([0.1, 0.4, 0.35, 0.8])
  
 roc_auc=roc_auc_score(y_true,y_score) roc_auc=roc_auc_score(y_true,y_score)
 </sxh> </sxh>
 +
 +
 +==== Explicación de este tipo de gráficas ====
 +Acabamos de ver como funciona ROC-AUC pero existe otra métrica similar llamada [[#pr-auc]] ambas métricas comparten el que se calcula el área bajo la curva.
 +
 +Así que vamos a explicar el significado de este tipo de métricas. Para ello vamos a poner un ejemplo cotidiano.
 +
 +Imaginemos que queremos irnos de vacaciones a dos destinos turísticos distintos. Y queremos saber cual de los dos es un mejor destino. 
 +(Los destinos son nuestros modelos de IA que queremos comparar). Tenemos la posibilidad de ir más o menos días y eso lo decidimos nosotros (El número de días es como nuestro umbral). Según el número de días que nos vayamos tenemos dos métricas que evalúan cada destino turístico.
 +  * El dinero que me gasto por irme esos días.
 +  * La felicidad que da por irme esos días.
 +
 +¿Podríamos ahora hacer una gráfica en la que para cada número de días que me voy se calculara "El dinero que me gasto" y "La felicidad que me da"?
 +
 +
  
  
Línea 592: Línea 610:
   * {{ :clase:iabd:pia:2eval:predicting_receiver_operating_characteristic_curve_area_under_curve_and_arithmetic_means_of_accuracies_based_on_the_distribution_of_data_samples.pdf |Predicting Receiver Operating Characteristic curve, area under curve , and arithmetic means of accuracies based on the distribution of data samples}}   * {{ :clase:iabd:pia:2eval:predicting_receiver_operating_characteristic_curve_area_under_curve_and_arithmetic_means_of_accuracies_based_on_the_distribution_of_data_samples.pdf |Predicting Receiver Operating Characteristic curve, area under curve , and arithmetic means of accuracies based on the distribution of data samples}}
   * [[https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4356897/|Disadvantages of using the area under the receiver operating characteristic curve to assess imaging tests: A discussion and proposal for an alternative approach]]   * [[https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4356897/|Disadvantages of using the area under the receiver operating characteristic curve to assess imaging tests: A discussion and proposal for an alternative approach]]
-  * [[https://medium.com/analytics-vidhya/mathematics-behind-roc-auc-interpretation-e4e6f202a015|Mathematics behind ROC-AUC interpretation]] y {{ :clase:iabd:pia:2eval:mathematics_behind_roc-auc_interpretation.pdf |Mathematics behind ROC-AUC interpretation.pdf}}: Demostración de que $ROC{\text -}AUC=P(Y_{score-true}>Y_{score-false})$+  * [[https://medium.com/analytics-vidhya/mathematics-behind-roc-auc-interpretation-e4e6f202a015|Mathematics behind ROC-AUC interpretation]] y {{ :clase:iabd:pia:2eval:mathematics_behind_roc-auc_interpretation.pdf |Mathematics behind ROC-AUC interpretation.pdf}}: Demostración de que ''ROC-AUC=P(y_score_true>Y_score_false)''
   * {{ :clase:iabd:pia:2eval:auc_a_misleading_measure_of_the_performance_of_predictive_distribution_models.pdf |AUC: A misleading measure of the performance of predictive distribution models}}   * {{ :clase:iabd:pia:2eval:auc_a_misleading_measure_of_the_performance_of_predictive_distribution_models.pdf |AUC: A misleading measure of the performance of predictive distribution models}}
   * Cálculo del mejor Threshold:   * Cálculo del mejor Threshold:
Línea 1460: Línea 1478:
 Más información: Más información:
   * [[https://en.wikipedia.org/wiki/Fowlkes%E2%80%93Mallows_index|Fowlkes–Mallows index. Wikipedia]]   * [[https://en.wikipedia.org/wiki/Fowlkes%E2%80%93Mallows_index|Fowlkes–Mallows index. Wikipedia]]
-  * [[https://www.jstor.org/stable/2288117|A Method for Comparing Two Hierarchical Clusterings. E. B. Fowlkes &C. L. Mallows]]+  * [[https://www.tandfonline.com/doi/abs/10.1080/01621459.1983.10478008|A Method for Comparing Two Hierarchical Clusterings. E. B. Fowlkes &C. L. Mallows]]{{:clase:iabd:pia:2eval:lib|}}
   * {{:clase:iabd:pia:2eval:comparing_clusterings-an_information_based_distance.pdf |Comparing clusterings—an information based distance}}   * {{:clase:iabd:pia:2eval:comparing_clusterings-an_information_based_distance.pdf |Comparing clusterings—an information based distance}}
   * [[https://scikit-learn.org/1.5/modules/generated/sklearn.metrics.fowlkes_mallows_score.html|sklearn.metrics.fowlkes_mallows_score]]   * [[https://scikit-learn.org/1.5/modules/generated/sklearn.metrics.fowlkes_mallows_score.html|sklearn.metrics.fowlkes_mallows_score]]
   * [[https://www.geeksforgeeks.org/ml-fowlkes-mallows-score/|Geeks for Geeks: Fowlkes-Mallows Score]]   * [[https://www.geeksforgeeks.org/ml-fowlkes-mallows-score/|Geeks for Geeks: Fowlkes-Mallows Score]]
 +  * 
  
 ===== PR-AUC ===== ===== PR-AUC =====
Línea 1482: Línea 1501:
  
 {{:clase:iabd:pia:2eval:metricas_curva_pr_auc_exp.png|}} {{:clase:iabd:pia:2eval:metricas_curva_pr_auc_exp.png|}}
 +
 +A esta métrica también se le llama Preciónmedia ya que realmente está calculado la media de las precisiones para todos los umbrales. 
  
  
 El métrica de ROC-AUC no tenía en cuenta la prevalencia ya que no se usaba en la fórmula. Por otro lado PR-AUC, si que tiene en cuenta la prevalencia ya que usa la precisión pero por otro lado no tiene en cuenta los TN. Lo que la hace válida como métrica para datos desbalanceados. El métrica de ROC-AUC no tenía en cuenta la prevalencia ya que no se usaba en la fórmula. Por otro lado PR-AUC, si que tiene en cuenta la prevalencia ya que usa la precisión pero por otro lado no tiene en cuenta los TN. Lo que la hace válida como métrica para datos desbalanceados.
 +
 +Con sklearn podemos usar la métrica de PR-AUC de la siguiente forma:
 +<sxh python>
 +from sklearn.metrics import average_precision_score
 +
 +y_true = np.array([0, 0, 1, 1])
 +y_score = np.array([0.1, 0.4, 0.35, 0.8])
 +
 +pr_auc = average_precision_score(y_true, y_score)
 +</sxh>
  
  
clase/iabd/pia/2eval/tema08.metricas_derivadas.1740912479.txt.gz · Última modificación: 2025/03/02 11:47 por admin