Herramientas de usuario

Herramientas del sitio


clase:iabd:pia:2eval:tema07-apendices

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-apendices [2024/03/19 13:56]
admin [Creación de los gráficos del descenso de gradiente]
clase:iabd:pia:2eval:tema07-apendices [2024/03/19 17:04] (actual)
admin [Más métricas]
Línea 232: Línea 232:
 Y obviamente el resultado es el mismo Y obviamente el resultado es el mismo
  
-===== Otras métricas =====+===== Métricas ===== 
 +Las métricas que ya las hemos explicado en el tema de métricas son: 
 +    * Métricas básicas (Sensibilidad, Especificidad, FNR y FPR) 
 +    * Métricas derivadas según el teorema de bayes (PPV,NPV, FDR y FOR) 
 + 
 +Las métricas que ahora vamos a ver son métricas que hacen la media entre alguna de las dos métricas que acabamos de indicar. 
 + 
 +Para organizar las métricas según 2 criterios: 
 +  * Según que métricas juntan 
 +    * Métricas básicas (Sensibilidad, Especificidad, FNR y FPR) 
 +    * Métricas derivadas (PPV,NPV, FDR y FOR) 
 +    * Métricas mixtas, que usa una básica y otra derivada. 
 +  * Según la fórmula que usan: 
 +    * Media aritmética 
 +    * Media armónica 
 +    * Media geométrica 
 +    * L1-Norma 
 +    * L2-Norma 
 +    * Ratio 
 +==== Juntado dos Métricas Básicas ==== 
 +^  ^  Fórmula que usan  ^^^^^^ 
 +^  Métricas básicas que usan  ^  Media aritmética  ^  Media armónica  ^  Media geométrica  ^  L1-Norma  ^  L2-Norma  ^  Ratio  ^ 
 +| Sensibilidad (TPR) y Especificidad (TNR)  |    |    |    |  $Informedness=TPR+TNR-1$  |     | 
 +| Sensibilidad (TPR) y FPR  |    |    |    |    |    $Positive \; likelihood \; ratio=\frac{TPR}{FPR}$ | 
 +| Especificidad (TNR) y FNR  |    |    |    |    |    $Negative \; likelihood \; ratio=\frac{FNR}{TNR}$ | 
 +| FPR y FNR  |    |    |     | 
 + 
 + 
 +==== Juntado dos Métricas derivadas ==== 
 + 
 +^  ^  Fórmula que usan  ^^^^^^ 
 +^  Métricas básicas que usan  ^  Media aritmética  ^  Media armónica  ^  Media geométrica  ^  L1-Norma  ^  L2-Norma  ^  Ratio  ^ 
 +| PPV y NPV  |    |    |    |  $Markdness=PPV+NPV-1$ |    |   | 
 +| PPV y FOR  |    |    |    |        | 
 +| NPV y FDR  |    |    |    |        | 
 +| FDR y FOR  |    |    |    |        | 
 + 
 + 
 +==== Métricas mixtas ==== 
 +Son métricas que juntan una métrica básica con una métrica derivada. Debido a que existen 16 combinaciones no vamos a mostrar todas las que existen, sino solo las que he considerado interesantes. 
 + 
 +  * La siguiente tabla son métricas que existen (Tienen nombre) 
 + 
 +^  ^  Fórmula que usan  ^^^^^^ 
 +^  Métricas básicas que usan  ^  Media aritmética  ^  Media armónica  ^  Media geométrica  ^  L1-Norma  ^  L2-Norma  ^  Ratio  ^ 
 +| PPV y Sensibilidad (TPR)  |    |  $F_{1}score=\frac{2}{\frac{1}{PPV}+\frac{1}{TPR}}$  |  $Fowlkes-Mallows \; index=\sqrt{PPV*TPR}$  |        | 
 +| NPV y Especificidad (TNR)  |    |    |    |        | 
 + 
 +===== Más métricas ===== 
 + 
 + 
 +==== Indice Jaccard ==== 
 +Este índice es la división entre 2 probabilidades: 
 + 
 +$$ 
 +Indice \; Jaccard=\frac{P(Positivo \cap Enfermo)}{P(Positivo \cup Enfermo)}=\frac{TP}{TP+FP+FN} 
 +$$ 
 + 
 +  * Se deduce de la siguiente forma: 
 + 
 +$$ 
 +\frac{P(Positivo \cap Enfermo)}{P(Positivo \cup Enfermo)}= 
 +$$ 
 + 
 +$$ 
 +\frac{P(Positivo|Enfermo)*P(Enfermo)}{P(Positivo)+P(Enfermo)-P(Positivo \cap Enfermo)}=\frac{P(Positivo|Enfermo)*P(Enfermo)}{P(Positivo)+P(Enfermo)-P(Positivo|Enfermo)*P(Enfermo)} 
 +$$ 
 + 
 +  * Sabiendo que: 
 + 
 +$$ 
 + 
 +\begin{array} 
 +\\ 
 +P(Enfermo)&=&\frac{TP+FN}{TP+FN+FP+TN} 
 +\\ 
 + 
 + 
 + 
 +P(Sano)&=&\frac{FP+TN}{TP+FN+FP+TN} 
 +\\ 
 +P(Positivo)&=&\frac{TP+FP}{TP+FN+FP+TN} 
 +\\ 
 +P(Negativo)&=&\frac{FN+TN}{TP+FN+FP+TN} 
 +\\ 
 +P(Positivo|Enfermo)&=&\frac{TP}{TP+FN} 
 +\end{array} 
 +$$ 
 + 
 +  * Entonces: 
 + 
 +$$ 
 +\frac{P(Positivo|Enfermo)*P(Enfermo)}{P(Positivo)+P(Enfermo)-P(Positivo|Enfermo)*P(Enfermo)}= 
 +$$ 
 + 
 +$$ 
 +\left ( \frac{TP}{TP+FN}*\frac{TP+FN}{TP+FN+FP+TN} \right ) \div    \left (\frac{TP+FP}{TP+FN+FP+TN}+\frac{TP+FN}{TP+FN+FP+TN}-\frac{TP}{TP+FN}*\frac{TP+FN}{TP+FN+FP+TN} \right )= 
 +$$ 
 + 
 +$$ 
 +\left ( \frac{TP}{TP+FN+FP+TN} \right ) \div    \left (\frac{TP+FP}{TP+FN+FP+TN}+\frac{TP+FN}{TP+FN+FP+TN}-\frac{TP}{TP+FN+FP+TN} \right )= 
 +$$ 
 + 
 +$$ 
 +\left ( \frac{TP}{TP+FN+FP+TN} \right ) \div    \left (\frac{TP+FP+TP+FN-TP}{TP+FN+FP+TN} \right )=\left ( \frac{TP}{TP+FN+FP+TN} \right ) \div    \left (\frac{TP+FP+FN}{TP+FN+FP+TN} \right )= 
 +$$ 
 + 
 +$$ 
 +\frac{TP}{TP+FP+FN}=Indice \; Jaccard 
 +$$ 
 + 
 +  * Sin embargo también podemos definir el Indice Jaccard en función de la sensibilidad, la especificidad y la prevalencia.Usando el teorema de bayes podemos definir P(Positivo) de la siguiente forma: 
 + 
 +$$ 
 +P(Positivo)=\frac{P(Positivo|Enfermo)*P(Enfermo)}{P(Enfermo|Positivo)}= 
 +$$ 
 + 
 +$$ 
 +\frac{P(Positivo|Enfermo)*P(Enfermo)}{1} \div \frac{P(Positivo|Enfermo)*P(Enfermo)}{P(Positivo|Enfermo)*P(Enfermo)+P(Positivo|Sano)*P(Sano)}= 
 +$$ 
 + 
 +$$ 
 +Sensibilidad*Prevalencia+(1-Especificidad)*(1-Prevalencia) 
 +$$ 
 + 
 + 
 +  * Y ahora usamos la formula de P(Positivo) en la definición del Indice Jaccard 
 + 
 +$$ 
 +Indice \; Jaccard=\frac{P(Positivo|Enfermo)*P(Enfermo)}{P(Positivo)+P(Enfermo)-P(Positivo|Enfermo)*P(Enfermo)}= 
 +$$ 
 + 
 +$$ 
 +\frac{Sensibilidad*Prevalencia}{Sensibilidad*Prevalencia+(1-Especificidad)*(1-Prevalencia)+Prevalencia-Sensibilidad*Prevalencia}= 
 +$$ 
 + 
 +$$ 
 +\frac{Sensibilidad*Prevalencia}{(1-Especificidad)*(1-Prevalencia)+Prevalencia} 
 +$$ 
 + 
 +  * Por lo tanto 
 + 
 +$$ 
 +Indice \; Jaccard=\frac{Sensibilidad*Prevalencia}{(1-Especificidad)*(1-Prevalencia)+Prevalencia} 
 +$$ 
 + 
 + 
 + 
 +==== Prevalence threshold ==== 
 +La métrica de Prevalence threshold está explicada en [[https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7540853/|Prevalence threshold (ϕe) and the geometry of screening curves]]. 
 + 
 +Lo único que diremos respecto a la formula es que en el artículo aparece como: 
 + 
 +$$ 
 +Prevalence \; threshold=\frac{\sqrt{Sensibilidad(1-Especificidad)}+(Especificidad-1)}{Sensibilidad+Especificidad+1} 
 +$$ 
 +Que jugando un poco con los signos se obtiene la formula equivalente que aparece en Wikipedia: 
 +$$ 
 +Prevalence \; threshold=\frac{\sqrt{Sensibilidad*FPR}-FPR}{Sensibilidad-FPR} 
 +$$ 
 + 
 +==== Diagnostic odds ratio ==== 
 +Se define como la división entre //Positive likelihood ratio (LR+)// y  //Negative likelihood ratio (LR-)// 
 + 
 +$$ 
 +DOR=\frac{LR+}{LR-}=\frac{TP*TN}{FP*FN} 
 +$$ 
 + 
 +  * Aunque también se puede definir en función de la sensibilidad y la especificidad 
 + 
 +$$ 
 +DOR=\frac{LR+}{LR-}=\frac{\frac{TPR}{1-TNR}}{\frac{1-TPR}{TNR}}=\frac{Sensibilidad*Especificidad}{(1-Sensibilidad)(1-Especificidad)} 
 +$$ 
 + 
 +==== Matthews Correlation Coefficient o MMC ==== 
 +Es otra métrica pero que tiene en cuenta que los datos no estén balanceados.  
 + 
 +El MMC tiene un valor entre -1 a 1. Siendo: 
 +  * 1 : El clasificador funciona perfectamente 
 +  * 0 : El clasificador acierta aleatoriamente 
 +  * -1 : El clasificador acierta peor que aleatoriamente, es decir que clasifica al revés "perfectamente" 
 + 
 +$$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} ) } }$$ 
 + 
 + 
 +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 siempre1.0 
 +Valor para una predicción que acierta la mitad0.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 (MCC) over F1 score and accuracy in binary classification evaluation}} 
 +  * [[https://en.wikipedia.org/wiki/Phi_coefficient|Phi coefficient-Wikipedia]] 
 + 
 + 
 + 
 + 
  
clase/iabd/pia/2eval/tema07-apendices.1710852995.txt.gz · Última modificación: 2024/03/19 13:56 por admin