Muestra las diferencias entre dos versiones de la página.
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:51] admin [Métricas mixtas] |
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 | + | Threhold |
$$ | $$ | ||
Línea 162: | Línea 162: | ||
</ | </ | ||
+ | Con sklearn podemos usar la métrica de AUC de la siguiente forma: | ||
+ | <sxh python> | ||
+ | from sklearn.metrics import roc_auc_score | ||
+ | |||
+ | auc=roc_auc_score(y_true, | ||
+ | </ | ||
+ | Mas información: | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * {{ : | ||
+ | * Cálculo del mejor Threshold: | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | |||
+ | |||
+ | <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:// | ||
+ | * {{ : | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * F1-score y ROC | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | |||
+ | </ | ||
===== 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 194: | 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 |
- | 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 a 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, | + | $$\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 '' | + | |
- | + | ||
- | Ejemplo de uso: | + | |
- | <sxh python> | + | |
- | from sklearn.metrics import matthews_corrcoef | + | |
- | + | ||
- | y_true = [1, | + | |
- | y_pred = [1, | + | |
- | print("Valor para una predicción que acierta siempre=", | + | |
- | + | ||
- | y_true = [1, | + | |
- | y_pred = [1, | + | |
- | print(" | + | |
- | + | ||
- | y_true | + | |
- | y_pred = [0, | + | |
- | print("Valor para una predicción que nunca acierta=", | + | |
- | </ | + | |
- | + | ||
- | + | ||
- | <sxh base> | + | |
- | Valor para una predicción que acierta siempre= | + | |
- | Valor para una predicción que acierta la mitad= 0.0 | + | |
- | Valor para una predicción que nunca acierta= | + | |
- | </ | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | Mas información: | + | |
- | | + | |
- | * [[https:// | + | |
- | | + | |
- | | + | |
- | * {{ : | + | |
- | | + | |
- | + | ||
- | + | ||