Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa | |||
clase:iabd:pia:2eval:tema07-apendices-metricas [2024/03/19 19:50] admin borrado |
— (actual) | ||
---|---|---|---|
Línea 1: | Línea 1: | ||
- | ====== 7. Entrenamiento de redes neuronales e) Apéndices Métricas ====== | ||
- | En este apartado vamos a ampliar las métricas que podemos usar con la clasificación binaria las cuales ya vimos en [[tema07.metricas]]. | ||
- | |||
- | Para ampliar nos vamos a basar en este diagrama (que se puede ver en [[https:// | ||
- | |||
- | {{: | ||
- | |||
- | |||
- | Las métricas que ya las hemos explicado en el tema de métricas son: | ||
- | * Métricas básicas (Sensibilidad, | ||
- | * 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, | ||
- | * 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 | ||
- | * Suma-1 | ||
- | * Ratio | ||
- | |||
- | |||
- | |||
- | ===== Juntado dos Métricas Básicas ===== | ||
- | Las 4 métricas básicas son Sensibilidad, | ||
- | |||
- | |||
- | * La siguiente tabla son métricas que existen (Tienen nombre) | ||
- | |||
- | ^ ^ Fórmula que usan ^^^^^ | ||
- | ^ Métricas básicas que usan ^ Media aritmética | ||
- | | Sensibilidad (TPR) y Especificidad (TNR) | | | | $Informedness=TPR+TNR-1$ | | | ||
- | | Sensibilidad (TPR) y FPR | | | | | ||
- | | Especificidad (TNR) y FNR | | | | | ||
- | | FPR y FNR | | | | ||
- | |||
- | Mas información: | ||
- | * [[https:// | ||
- | * {{ : | ||
- | |||
- | $$ | ||
- | Youden \; Index=maximo \{ sensibilidad(threhold)+especificidad(threhold)-1 \} \;\; threshold \in [0,1] | ||
- | $$ | ||
- | |||
- | \\ | ||
- | |||
- | * La siguiente tabla son métricas que no existen (No tienen nombre) | ||
- | |||
- | ^ ^ Fórmula que usan ^^^^^ | ||
- | ^ Métricas básicas que usan ^ Media aritmética | ||
- | | Sensibilidad (TPR) y Especificidad (TNR) | $\frac{TPR+TNR}{2}$ | ||
- | | Sensibilidad (TPR) y FPR | $\frac{TPR+FPR}{2}$ | ||
- | | Especificidad (TNR) y FNR | $\frac{TNR+FNR}{2}$ | ||
- | | FPR y FNR | $\frac{FPR+FNR}{2}$ | ||
- | |||
- | <note tip> | ||
- | No tiene sentido que se junten las métricas de TPR y FNR o las métricas de FPR y TNR ya que entre ellas son complementarias. Es decir que TPR+FNR=1 y que FPR+TNR=1 | ||
- | </ | ||
- | |||
- | ===== Juntado dos Métricas derivadas ===== | ||
- | Las 4 métricas derivadas son PPV, NPV, FDR y FOR. | ||
- | |||
- | * La siguiente tabla son métricas que existen (Tienen nombre) | ||
- | |||
- | ^ ^ Fórmula que usan ^^^^^ | ||
- | ^ Métricas básicas que usan ^ Media aritmética | ||
- | | PPV y NPV | | | | $Markdness=PPV+NPV-1$ | | | ||
- | | PPV y FOR | | | | | ||
- | | NPV y FDR | | | | | ||
- | | FDR y FOR | | | | | ||
- | |||
- | \\ | ||
- | |||
- | * La siguiente tabla son métricas que no existen (No tienen nombre) | ||
- | |||
- | |||
- | ^ ^ Fórmula que usan ^^^^^ | ||
- | ^ Métricas básicas que usan ^ Media aritmética | ||
- | | PPV y NPV | $\frac{PPV+NPV}{2}$ | ||
- | | PPV y FOR | $\frac{PPV+FOR}{2}$ | ||
- | | NPV y FDR | $\frac{NPV+FDR}{2}$ | ||
- | | FDR y FOR | $\frac{FDR+FOR}{2}$ | ||
- | |||
- | <note tip> | ||
- | No tiene sentido que se junten las métricas de PPV y FDR o las métricas de NPV y FOR ya que entre ellas son complementarias. Es decir que PPV+FDR=1 y que NPV+FOR=1 | ||
- | </ | ||
- | |||
- | |||
- | ===== 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 | ||
- | | PPV y Sensibilidad (TPR) | | $F_{1}score=\frac{2}{\frac{1}{PPV}+\frac{1}{TPR}}$ | ||
- | | NPV y Especificidad (TNR) | | | | | ||
- | \\ | ||
- | |||
- | * La siguiente tabla son métricas que no existen (No tienen nombre) | ||
- | |||
- | ^ ^ Fórmula que usan ^^^^^ | ||
- | ^ Métricas básicas que usan ^ Media aritmética | ||
- | | PPV y Sensibilidad (TPR) | $\frac{PPV+TPR}{2}$ | ||
- | | NPV y Especificidad (TNR) | $\frac{NPV+TNR}{2}$ | ||
- | |||
- | ===== Más métricas derivadas ===== | ||
- | Veamos ahora otras métricas que derivamos a partir de las básicas que son Sensibilidad, | ||
- | |||
- | ==== Accuracy ==== | ||
- | Accuracy (Exactitud) mide la proporción de predicciones correctas sobre el total de predicciones realizadas. Por lo que su fórmula es: | ||
- | |||
- | $$ | ||
- | Accuracy=\frac{TP+TN}{TP+FN+FP+TN} | ||
- | $$ | ||
- | |||
- | * Debido a que usa los 4 valores vamos a expresar la misma fórmula usando Especificidad, | ||
- | |||
- | $$ | ||
- | Accuracy=P(Predicción \; correcta|Predicción \; realizada) | ||
- | $$ | ||
- | |||
- | * Eso se puede expresar como la suma de 2 probabilidades | ||
- | |||
- | $$ | ||
- | P(Predicción \; correcta|Predicción \; realizada)=P(Positivo \cap Enfermo) + P(Negativo \cap Sano)= | ||
- | $$ | ||
- | |||
- | $$ | ||
- | P(Positivo|Enfermo)*P(Enfermo)+P(Negativo|Sano)*P(Sano)=Sensibilidad*Prevalencia+Especificidad*(1-Prevalencia) | ||
- | $$ | ||
- | |||
- | * Por lo tanto la fórmula que como: | ||
- | |||
- | $$ | ||
- | Accuracy=Sensibilidad*Prevalencia+Especificidad*(1-Prevalencia) | ||
- | $$ | ||
- | |||
- | |||
- | * Vamos a ver que para la prevalencia de los datos, las 2 fórmulas son iguales. | ||
- | |||
- | $$ | ||
- | Sensibilidad*Prevalencia+Especificidad*(1-Prevalencia)=\frac{TP}{(TP+FN)}*\frac{(TP+FN)}{TP+FN+FP+TN}+\frac{TN}{(FP+TN)}*\frac{(FP+TN)}{TP+FN+FP+TN}= | ||
- | $$ | ||
- | |||
- | $$ | ||
- | \frac{TP}{TP+FN+FP+TN}+\frac{TN}{TP+FN+FP+TN}=\frac{TP+TN}{TP+FN+FP+TN}=Accuracy | ||
- | $$ | ||
- | |||
- | |||
- | |||
- | ==== Balanced Accuracy ==== | ||
- | Realmente esta no es una nueva métrica sino que es la misma que // | ||
- | |||
- | |||
- | $$ | ||
- | Balanced \; Accuracy=\frac{Sensibilidad+Especificidad}{2} | ||
- | $$ | ||
- | |||
- | * Pero si calculamos // | ||
- | |||
- | $$ | ||
- | Accuracy=Sensibilidad*Prevalencia+Especificidad*(1-Prevalencia)= | ||
- | $$ | ||
- | |||
- | $$ | ||
- | Sensibilidad*0, | ||
- | $$ | ||
- | |||
- | $$ | ||
- | \frac{Sensibilidad}{2}+\frac{Especificidad}{2}=\frac{Sensibilidad+Especificidad}{2}=Balanced \; Accuracy | ||
- | $$ | ||
- | |||
- | |||
- | ==== 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)& | ||
- | \\ | ||
- | P(Sano)& | ||
- | \\ | ||
- | P(Positivo)& | ||
- | \\ | ||
- | P(Negativo)& | ||
- | \\ | ||
- | P(Positivo|Enfermo)& | ||
- | \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, | ||
- | |||
- | $$ | ||
- | 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:// | ||
- | |||
- | 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)} | ||
- | $$ | ||
- | |||
- | ===== Otras métricas ===== | ||
- | |||
- | ==== Matthews correlation coefficient ==== | ||
- | 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, | ||
- | |||
- | $$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} ) } }=\sqrt{TPR \times TNR \times PPV \times NPV}-\sqrt{FNR \times FPR \times FOR \times FDR}$$ | ||
- | |||
- | |||
- | Podemos hacer uso de la métrica con la función '' | ||
- | |||
- | Ejemplo de uso: | ||
- | <sxh python> | ||
- | from sklearn.metrics import matthews_corrcoef | ||
- | |||
- | y_true = [1, | ||
- | y_pred = [1, | ||
- | print(" | ||
- | |||
- | y_true = [1, | ||
- | y_pred = [1, | ||
- | print(" | ||
- | |||
- | y_true = [1, | ||
- | y_pred = [0, | ||
- | print(" | ||
- | </ | ||
- | |||
- | |||
- | <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 | ||
- | </ | ||
- | |||
- | Mas información: | ||
- | * [[https:// | ||
- | * [[https:// | ||
- | * [[https:// | ||
- | * [[https:// | ||
- | * {{ : | ||
- | * [[https:// | ||
- | |||
- | |||