Herramientas de usuario

Herramientas del sitio


clase:iabd:pia:2eval:tema07.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:tema07.metricas_derivadas [2024/03/19 13:54]
admin [Juntado dos Métricas Básicas]
clase:iabd:pia:2eval:tema07.metricas_derivadas [2024/03/25 14:47] (actual)
admin [Juntado dos Métricas Básicas]
Línea 100: Línea 100:
  
 $$ $$
-Threhold=maximo \{ sensibilidad(threhold)+especificidad(threhold)-1 \} \;\; threshold \in [0,1]+Threhold que máximiza \{ sensibilidad(threhold)+especificidad(threhold)-1 \} \;\; threshold \in [0,1]
 $$ $$
  
Línea 170: Línea 170:
  
  
 +Mas información:
 +  * [[https://keras.io/api/metrics/classification_metrics/#auc-class|AUC class]]
 +  * [[https://aprendeia.com/curvas-roc-y-area-bajo-la-curva-auc-machine-learning/|Curvas ROC y Área bajo la curva (AUC)]]
 +  * [[https://machinelearningmastery.com/roc-curves-and-precision-recall-curves-for-classification-in-python/|How to Use ROC Curves and Precision-Recall Curves for Classification in Python]]
 +  * {{ :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}}
 +  * Cálculo del mejor Threshold:
 +    * [[https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5470053/|Defining an Optimal Cut-Point Value in ROC Analysis: An Alternative Approach]]
 +    * [[https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5082211/|On determining the most appropriate test cut-off value: the case of tests with continuous results]]
 +
 +
 +<note tip>
 +Hay otra curva que en vez de ser (1-Especificidad) vs Sensibilidad , es la de Sensibilidad vs Precisión (llamada en inglés Precision-Recall) que se usa cuando los datos tienen una baja prevalencia.
 +Y además está relacionado con el F1-score ya que el F1-score se calcula justamente con la Sensibilidad y Precisión
  
 +  * [[https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4349800/|The Precision-Recall Plot Is More Informative than the ROC Plot When Evaluating Binary Classifiers on Imbalanced Datasets]]
 +  * {{ :clase:iabd:pia:2eval:roc_graphs_notes_and_practical_considerations_for_researchers.pdf |ROC Graphs:Notes and Practical Considerations for Researchers}}
 +  * [[https://juandelacalle.medium.com/how-and-why-i-switched-from-the-roc-curve-to-the-precision-recall-curve-to-analyze-my-imbalanced-6171da91c6b8|How and Why I Switched from the ROC Curve to the Precision-Recall Curve to Analyze My Imbalanced Models: A Deep Dive]]
 +  * [[https://en.wikipedia.org/wiki/Mann%E2%80%93Whitney_U_test#Area-under-curve_(AUC)_statistic_for_ROC_curves|Area-under-curve (AUC) statistic for ROC curves]]
 +  * F1-score y ROC
 +    * [[https://neptune.ai/blog/f1-score-accuracy-roc-auc-pr-auc|F1 Score vs ROC AUC vs Accuracy vs PR AUC: Which Evaluation Metric Should You Choose?]]
 +    * [[https://stackoverflow.com/questions/44172162/f1-score-vs-roc-auc|F1 Score vs ROC AUC]]  
 +
 +</note>
 ===== Juntado dos Métricas derivadas ===== ===== Juntado dos Métricas derivadas =====
 Las 4 métricas derivadas son PPV, NPV, FDR y FOR. Las 4 métricas derivadas son PPV, NPV, FDR y FOR.
Línea 201: Línea 223:
  
  
 +Y por otro lado , podemos definir la fórmula en función de Sensibilidad , Especificidad y Prevalencia.
  
-==== Matthews Correlation Coefficient o MMC ==== +$$F1{\text -}score=\frac{2}{\frac{1}{Sensibilidad}+\frac{1}{Precision}}=$$ 
-Es otra métrica pero que tiene en cuenta que los datos no estén balanceados.  +$$\frac{2}{\frac{1}{Sensibilidad}+\frac{1}{\frac{Sensibilidad*Prevalencia}{Sensibilidad*Prevalencia+(1-Especificidad)*(1-Prevalencia)}}}=$$ 
- +$$\frac{2}{\frac{1}{Sensibilidad}+{\frac{Sensibilidad*Prevalencia+(1-Especificidad)*(1-Prevalencia)}{Sensibilidad*Prevalencia}}}=$$ 
-El MMC tiene un valor entre -1 1. Siendo: +$$\frac{2}{\frac{1}{\frac{Sensibilidad*Prevalencia}{Prevalencia}}+{\frac{Sensibilidad*Prevalencia+(1-Especificidad)*(1-Prevalencia)}{Sensibilidad*Prevalencia}}}=$$ 
-  * 1 : El clasificador funciona perfectamente +$$\frac{2}{{\frac{Prevalencia}{Sensibilidad*Prevalencia}}+{\frac{Sensibilidad*Prevalencia+(1-Especificidad)*(1-Prevalencia)}{Sensibilidad*Prevalencia}}}=$$ 
-  * 0 : El clasificador acierta aleatoriamente +$$\frac{2}{{\frac{Prevalencia+Sensibilidad*Prevalencia+(1-Especificidad)*(1-Prevalencia)}{Sensibilidad*Prevalencia}}}=$$ 
-  * -1 : El clasificador acierta peor que aleatoriamente, es decir que clasifica al revés "perfectamente" +$$\frac{2*Sensibilidad*Prevalencia}{Prevalencia+Sensibilidad*Prevalencia+(1-Especificidad)*(1-Prevalencia)}=$$ 
- +$$\frac{2*Sensibilidad*Prevalencia}{Prevalencia+Sensibilidad*Prevalencia+1-Prevalencia-Especificidad+Especificidad*Prevalencia}=$$ 
-$$MCC = \frac{ \mathit{TP} \times \mathit{TN} - \mathit{FP} \times \mathit{FN} } {\sqrt{ (\mathit{TP\mathit{FP}) ( \mathit{TP} + \mathit{FN} ) ( \mathit{TN\mathit{FP) ( \mathit{TN} + \mathit{FN} ) } }$$ +$$\frac{2*Sensibilidad*Prevalencia}{Prevalencia*(1+Sensibilidad-1+Especificidad)+1-Especificidad}=$$ 
- +$$F1{\text -}score=\frac{2*Sensibilidad*Prevalencia}{Prevalencia*(Sensibilidad+Especificidad)+(1-Especificidad)}$$
- +
-Podemos hacer uso de la métrica con la función ''sklearn.metrics.matthews_corrcoef'' de sklearn +
- +
-Ejemplo de uso: +
-<sxh python> +
-from sklearn.metrics import matthews_corrcoef +
- +
-y_true = [1,1,1,1,0,0,0,0] +
-y_pred = [1,1,1,1,0,0,0,0] +
-print("Valor para una predicción que acierta siempre=",matthews_corrcoef(y_true,y_pred)) +
- +
-y_true = [1,1,1,1,0,0,0,0] +
-y_pred = [1,1,0,0,1,1,0,0] +
-print("Valor para una predicción que acierta la mitad=",matthews_corrcoef(y_true,y_pred)+
- +
-y_true [1,1,1,1,0,0,0,0] +
-y_pred = [0,0,0,0,1,1,1,1] +
-print("Valor para una predicción que nunca acierta=",matthews_corrcoef(y_true,y_pred)) +
-</sxh> +
- +
- +
-<sxh base> +
-Valor para una predicción que acierta siempre= 1.0 +
-Valor para una predicción que acierta la mitad= 0.0 +
-Valor para una predicción que nunca acierta= -1.0 +
-</sxh> +
- +
- +
- +
- +
- +
-Mas información: +
-  [[https://scikit-learn.org/stable/modules/generated/sklearn.metrics.matthews_corrcoef.html|sklearn.metrics.matthews_corrcoef]] +
-  [[https://towardsdatascience.com/the-best-classification-metric-youve-never-heard-of-the-matthews-correlation-coefficient-3bf50a2f3e9a|Matthews Correlation Coefficient is The Best Classification Metric You’ve Never Heard Of]] +
-  [[https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5721660/|Ten quick tips for machine learning in computational biology]] +
-  [[https://medium.com/@cdefaux/phi-coefficient-a-k-a-matthews-correlation-coefficient-binary-classification-11e2c29db91e|Phi Coefficient A.K.A Matthews Correlation Coefficient (Binary Classification)]] +
-  * {{ :clase:iabd:pia:2eval:the_advantages_of_the_matthews_correlation_coeffic.pdf |The advantages of the Matthews correlation coefficient (MCCover F1 score and accuracy in binary classification evaluation}} +
-  [[https://en.wikipedia.org/wiki/Phi_coefficient|Phi coefficient-Wikipedia]] +
- +
- +
  
  
clase/iabd/pia/2eval/tema07.metricas_derivadas.1710852860.txt.gz · Última modificación: 2024/03/19 13:54 por admin