Cálculo de métricas de aprendizaje automático

1. Como se muestra en la siguiente figura

inserte la descripción de la imagen aquí

  1. exactitud

 precisión = TP + TNTP + TN + FP + FN \text { precisión }=\frac{T P+TN}{T P+T N+F P+FN} exactitud =TP+Tennesse+FP+FNTP+TNLa precisión se refiere a la relación entre el número de muestras pronosticadas correctamente y el número total de muestras pronosticadas. No considera si las muestras pronosticadas son positivas o negativas, sino que considera todas las muestras.

  1. precisión (índice de precisión)

 precisión = TPTP + FP \text { precisión }=\frac{TP}{T P+FP} precisión =TP+FPT.P.

La precisión se refiere a la relación entre el número de muestras positivas pronosticadas correctamente y el número de todas las muestras positivas pronosticadas, es decir, cuántas de todas las muestras positivas pronosticadas son muestras positivas verdaderas. De esto podemos ver que la precisión solo presta atención a la parte que se predice como una muestra positiva.

  1. recuerdo (tasa de recuerdo)

 recordar = TPTP + FN \text { recordar }=\frac{TP}{T P+FN} recordar =TP+FNT.P.

Se refiere a la relación entre el número de muestras positivas predichas correctamente y el número total de muestras positivas reales, es decir, cuántas muestras positivas puedo averiguar correctamente a partir de estas muestras.

  1. Puntuación F

F − puntuación = 2 1 / precisión + 1 / recordar F-\text { puntuación }=\frac{2}{1 / \text { precisión }+1 / \text { recordar }}F puntaje =1/  precisión +1/  recordar 2F-score es equivalente al promedio armónico de precisión y recuperación, y la intención es hacer referencia a dos indicadores. Podemos ver en la fórmula que si cualquier valor de recuperación y precisión disminuye, la puntuación F disminuirá y viceversa.

  1. especificidad

 especificidad = TNTN + FP \text { especificidad }=\frac{TN}{T N+FP} especificidad =Tennesse+FPTNEl indicador de especificidad no se ve a menudo, es relativo a la sensibilidad (recall), que se refiere a la relación entre el número de muestras negativas correctamente predichas y el número total de muestras negativas reales, es decir, cuántas de ellas puedo encontrar correctamente. de estas muestras?Muestras negativas.

  1. sensibilidad (TPR)

 sensibilidad = TPTP + FN = recordar \text { sensibilidad }=\frac{TP}{T P+FN}=\text { recordar } sensibilidad =TP+FNT.P.= recordar 

  1. curva PR

Ponemos el eje vertical a precisión, el eje horizontal a recuperación, y cambiamos el umbral para obtener una serie de pares y dibujar una curva. Para el efecto de predicción de diferentes modelos en el mismo conjunto de datos, podemos dibujar una serie de curvas PR. En general, si una curva "rodea" completamente a la otra, podemos considerar que ese modelo clasifica mejor que el modelo de comparación.

Como se muestra en la siguiente figura:
inserte la descripción de la imagen aquí
Indicadores bajo desequilibrio muestral

fondo:

En la mayoría de los casos, los costos de clasificación de las diferentes categorías no son iguales, es decir, no se puede comparar el costo de clasificar las muestras como ejemplos positivos o negativos. Por ejemplo, en el filtrado de spam, esperamos que los correos electrónicos importantes nunca se consideren como spam, y en la detección del cáncer, preferimos juzgar mal que fallar. En este caso, no es suficiente usar la tasa de error de clasificación como una métrica sola, ya que tal error métrico oculta el hecho de cómo se clasificó erróneamente la muestra. Por lo tanto, en la clasificación, cuando la importancia de una determinada categoría es más alta que otras categorías, puede usar Precisión y Recuperación de múltiples indicadores nuevos que son mejores que la tasa de error de clasificación.

  1. roc (Curva característica de funcionamiento del receptor)

El desequilibrio de clases a menudo ocurre en conjuntos de datos reales, es decir, hay muchas más muestras negativas que muestras positivas (o viceversa), y la distribución de muestras positivas y negativas en los datos de prueba también puede cambiar con el tiempo. En este caso, la curva ROC puede permanecer sin cambios. Al mismo tiempo, podemos afirmar que cuanto más cerca esté la curva ROC de la esquina superior izquierda, mejor será el rendimiento del clasificador, lo que significa que el clasificador obtiene una alta tasa de verdaderos positivos mientras que la tasa de falsos positivos es muy baja.

El siguiente es un ejemplo de una curva ROC:
inserte la descripción de la imagen aquí
donde la abscisa de la curva es la tasa de falsos positivos (False Positive Rate, FPR), N es el número de muestras negativas reales y FP es la muestra positiva predicha por el clasificador entre las N muestras negativas El número de , P es el número de muestras reales. donde FPR = FPFP + TN FPR = \frac{FP}{FP + TN}FPR=FP + TNFP, TPR = TPTP + FN TPR=\frac{TP}{TP+FN}TPR=TP + FNT.P.

Por ejemplo, si hay 20 muestras para 2 clasificaciones, los resultados de la clasificación son los siguientes:
inserte la descripción de la imagen aquí
ahora especificamos un umbral de 0,9, luego solo la primera muestra (0,9) se clasificará como un ejemplo positivo y todas las demás muestras se clasificarán como Clasificado como un ejemplo negativo, por lo tanto, para el umbral de 0,9, podemos calcular que el FPR es 0 y el TPR es 0,1 (porque hay un total de 10 muestras positivas y el número de predicciones correctas es 1), entonces sabemos que debe haber un punto en la curva es (0, 0.1). Seleccione diferentes umbrales (o "puntos de truncamiento") a su vez, dibuje todos los puntos clave y luego conecte los puntos clave para finalmente obtener la curva ROC como se muestra en la figura a continuación.

inserte la descripción de la imagen aquí
De hecho, existe una forma más intuitiva de dibujar la curva ROC, que es establecer el intervalo de escala del eje horizontal en 1 N \frac{1}{N}norte1, el intervalo de escala del eje vertical se establece en 1 P \frac{1}{P}PAG1, N, P son el número de muestras negativas y muestras positivas respectivamente. Luego, organice en orden descendente de acuerdo con los resultados de salida del modelo, recorra las muestras por turnos y dibuje la curva ROC comenzando desde 0. Cada vez que se encuentra una muestra positiva, se dibuja una curva con un intervalo de escala a lo largo del eje vertical, y cada vez que se encuentra una muestra negativa, es a lo largo del eje horizontal.Dibuje una curva con un intervalo de escala.Después de atravesar todos los puntos de la muestra, se dibuja la curva.

Dibujo de la curva ROC usando sklearn:

>>> from sklearnimport metrics
>>> import numpy as np
>>> y = np.array([1, 1, 2, 2]) #假设4个样本
>>> scores = np.array([0.1, 0.4, 0.35, 0.8])
>>> fpr, tpr, thresholds = metrics.roc_curve(y, scores, pos_label=2)
>>> fpr #假阳性
array([ 0. ,  0.5,  0.5,  1. ])
>>> tpr #真阳性
array([ 0.5,  0.5,  1. ,  1. ])
>>> thresholds #阈值
array([ 0.8 ,  0.4 ,  0.35,  0.1 ])
>>> #auc(后面会说)
>>> auc = auc = metrics.auc(fpr, tpr)
>>> auc
0.75

Trace la curva:

import matplotlib.pyplot as plt
plt.figure()
lw = 2
plt.plot(fpr, tpr, color='darkorange',
         lw=lw, label='ROC curve (area = %0.2f)' % auc)
plt.plot([0, 1], [0, 1], color='navy', lw=lw, linestyle='--')
plt.xlim([0.0, 1.0])
plt.ylim([0.0, 1.05])
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('Receiver operating characteristic example')
plt.legend(loc="lower right")
plt.show()

La imagen dibujada es como se muestra en la figura:
inserte la descripción de la imagen aquí
9. auc(Área bajo la curva)

auc se refiere al área de la roc calculada. El valor AUC es un valor de probabilidad. Cuando selecciona aleatoriamente una muestra positiva y una muestra negativa, la probabilidad de que el algoritmo de clasificación actual clasifique la muestra positiva por delante de la muestra negativa de acuerdo con el valor de Puntuación calculado es el valor AUC. Cuanto mayor sea Valor de AUC, mayor será la clasificación actual.Cuanto más probable sea que el algoritmo clasifique las muestras positivas por delante de las muestras negativas, mejor podrá clasificar.

def AUC(label, pre):
  """
  适用于python3.0以上版本
   """
  #计算正样本和负样本的索引,以便索引出之后的概率值
    pos = [i for i in range(len(label)) if label[i] == 1]
    neg = [i for i in range(len(label)) if label[i] == 0]
 
    auc = 0
    for i in pos:
        for j in neg:
            if pre[i] > pre[j]:
                auc += 1
            elif pre[i] == pre[j]:
                auc += 0.5
 
    return auc / (len(pos)*len(neg))
 
 
if __name__ == '__main__':
    label = [1,0,0,0,1,0,1,0]
    pre = [0.9, 0.8, 0.3, 0.1, 0.4, 0.9, 0.66, 0.7]
    print(AUC(label, pre))

Por supuesto, la fórmula también se puede usar para el cálculo: AUC = ∑ i ∈ rango de clase positiva ⁡ i − M ( 1 + M ) 2 M × NAUC=\frac{\sum_{i \in \text { clasepositiva }} \operatorname {rango }_{i}-\frac{M(1+M)}{2}}{M \veces N}AUC _ _=METRO×nortei clase positiva rangoyo2METRO ( 1 + METRO )

el código se muestra a continuación:

import numpy as np
def auc_calculate(labels,preds,n_bins=100):
    postive_len = sum(labels)
    negative_len = len(labels) - postive_len
    total_case = postive_len * negative_len
    pos_histogram = [0 for _ in range(n_bins)]
    neg_histogram = [0 for _ in range(n_bins)]
    bin_width = 1.0 / n_bins
    for i in range(len(labels)):
        nth_bin = int(preds[i]/bin_width)
        if labels[i]==1:
            pos_histogram[nth_bin] += 1
        else:
            neg_histogram[nth_bin] += 1
    accumulated_neg = 0
    satisfied_pair = 0
    for i in range(n_bins):
        satisfied_pair += (pos_histogram[i]*accumulated_neg + pos_histogram[i]*neg_histogram[i]*0.5)
        accumulated_neg += neg_histogram[i]

    return satisfied_pair / float(total_case)
 
 y = np.array([1,0,0,0,1,0,1,0,])
 pred = np.array([0.9, 0.8, 0.3, 0.1,0.4,0.9,0.66,0.7])
print("----auc is :",auc_calculate(y,pred))
  1. AUROC (Área bajo la curva característica de operación del receptor)

La mayoría de las veces, AUC se refiere a AUROC, lo cual es una mala práctica, AUC tiene ambigüedad (podría ser cualquier curva), mientras que AUROC no tiene ambigüedad.

El resto son consistentes con AUC.

2. Resumen de indicadores de segmentación de imágenes

  1. precisión de píxeles (marcados correctamente/número total de píxeles)

En aras de la explicación, suponga lo siguiente: un total de k + 1 k+1k+1 clase (desdeL 0 L_{0}L0a L k L_{k}Lk, que contiene una clase vacía o un fondo), pij p_{ij}pagyoIndica que pertenece a la clase iipero predije como clasejjEl número de píxeles para j . Es decir,pii p_{ii}pagyoIndica la muestra positiva verdadera, y pij , pji p_{ij},p_{ji}pagyo,pagjiLas representaciones se interpretan como falsos positivos y falsos negativos, respectivamente.

Su fórmula de cálculo es la siguiente: PA = ∑ 0 kpii ∑ i = 0 k ∑ j = 0 kpij PA = \frac{\sum_{0}^{k}p_{ii}}{\sum_{i=0}^ {k}\sum_{j=0}^{k}p_{ij}}PA _=yo = 0kj = 0kpagyo0kpagyo
Hay un total de k + 1 k+1 en la imagenk+1 ,P ii P_{ii}PAGyoIndica que el iila clase i se divide en la clase iiEl número de píxeles de clase i (el número de píxeles clasificados correctamente),P ij P_{ij}PAGyoIndica que el iiLa clase i se divide en jjthEl número de píxeles de clase j (el número de todos los píxeles)
, por lo que la relación representa la proporción de píxeles correctamente clasificados con respecto al número total de píxeles.

Para PA PAEn lo que respecta a PA , ¡la ventaja es la simplicidad! Desventajas: si una gran área de la imagen es el fondo y el objetivo es pequeño, incluso si la imagen completa se predice como fondo, habrá una puntuación de PA alta, por lo que este indicador no es adecuado para evaluar la segmentación de la imagen. efecto de objetivos pequeños.

  1. MPA (Precisión media de píxeles)

Su fórmula de cálculo es la siguiente: MPA = 1 1 + K ∑ 0 kpii ∑ j = 0 kpij MPA = \frac{1}{1+K}\sum_{0}^{k}\frac{p_{ii}} {\ suma_{j=0}^{k}p_{ij}}MP A=1+k10kj = 0kpagyopagyo

¡Calcule la precisión de cada categoría y tome la media!

  1. MIou (Intersección media sobre unión)

Calcula la razón de la intersección a la unión de dos conjuntos, en segmentación semántica, los valores verdadero y predicho. MI o U = 1 k + 1 ∑ i = 0 kpii ∑ j = 0 kpij + ∑ j = 0 kpji − pii MI o U=\frac{1}{k+1} \sum_{i=0}^{k } \frac{p_{ii}}{\sum_{j=0}^{k} p_{ij}+\sum_{j=0}^{k} p_{ji}-p_{ii}}M yo o tu=k+11yo = 0kj = 0kpagyo+j = 0kpagjipagyopagyo

  1. FWIoU (intersección ponderada en frecuencia sobre la unión)

Una mejora de MIou, este método puede establecer pesos para cada clase según su frecuencia de ocurrencia: FWI o U = 1 ∑ i = 0 k ∑ j = 0 kpij ∑ i = 0 kpii ∑ j = 0 kpij + ∑ j = 0 kpji − pii FWI o U=\frac{1}{\sum_{i=0}^{k} \sum_{j=0}^{k} p_{ij}} \sum_{i=0}^ {k } \frac{p_{ii}}{\sum_{j=0}^{k} p_{ij}+\sum_{j=0}^{k} p_{ji}-p_{ii}}F W I o U=yo = 0kj = 0kpagyo1yo = 0kj = 0kpagyo+j = 0kpagjipagyopagyo

3. Resumen de indicadores de detección de objetivos

Se utilizan principalmente los siguientes indicadores:

m AP mapam A P :media Precisión media media Precisión mediaP re c i s i ó n m e n i a p a r i a , es decir, cada categoría AP APAP Promedio AP
APA P :PR PREl área bajo la curva PR se explicará en detalle más adelante
PR PRPR曲线:P recisión − R ecall Precisión-RecallPrecisión _ _ _ _ _ _R ec a ll曲线
Precisión: TP / (TP + FP) Precisión: TP / (TP + FP)Precisión _ _ _ _ _ _:TP / ( TP+FP )
Recuperación : TP / ( TP + FN ) Recuperación: TP / (TP + FN)R ec todo _:TP / ( TP+FN )
TP : I o U > 0.5 TP: IoU >0.5TP:yo o tu>El número de marcos de detección de 0.5 (el mismo G round Truth Ground TruthLa verdad del terreno se calcula solo una vez) FP : I o U <= 0,5 FP: IoU < = 0,5
FP:yo o tu<=0,5 fotogramas de detección, o detectar el mismoGT GTEl número de marcos de detección redundantes de GT
FN FNFN : Número de GTs no detectados
IOU IOUI O U : Calcular el cociente de la intersección y unión de dos conjuntos
NMS NMSNMS : APde supresión no máxima
Cálculo de AP

Para calcular AP APA P , lo primero que hay que calcular esTP, FP, FN TP, FP, FNTP , FP , FN .

Para una sola imagen, primero atraviese el suelo en la imagen verdad básica verdad _ _ _t r u t h objeto, y luego extraer el gt gtde una categoría que queremos calcularg t objetos objetoso bj ec t s , luego lea el marco de detección de esta categoría detectada por el detector (no se preocupe por otras categorías), y luego filtre el puntaje de confianza más bajo que el umbral de confianza, y algunos umbrales de confianza no están establecidos. Ordene los marcos de detección restantes de acuerdo con el puntaje de confianza de mayor a menor, y primero juzgue el marco de detección con el puntaje de confianza más alto ygt gtg t bbox bboxbb o xiou iouyo o tu si onoyo o tu嘈值, jovenyou youi o u es mayor que el conjuntoiou iouEl umbral i o u se juzga comoTP TPTP , pon estegtbbox gt_bboxg tsegundocasilla marcada como detectada (posterior mismo GT GTLos marcos de detección redundantes de GT se consideran FP FPFP , por lo que primero se ordena de mayor a menor según la puntuación de confianza, y el marco de detección con la puntuación de confianza más alta va primero aiou ioui o u umbral de comparación, si es mayor queiou ioui o u umbral, considerado comoTP TPTP , siguiente mismogt gtLas cajas de detección de objetos g t se consideran todas como FP FPFP ),tú, túSi i o u es menor que el umbral, esFP FPFP . El número total de GT en una determinada categoría en la imagen es fijo, se resta el número de TP y el resto es el número de FN

Cuando hay TP, FP, FN TP, FP, FNtp ,FP ,Después del valor FN , podemos calcularla precisión de precisiónp rec i s i o nrecordar recordarrec todos . _ Calculando asíAP APAP _ _

En COV 2010 COV2010Antes de VOC 2010 , solo necesita seleccionar cuandoR ecall > = 0 , 0.1 , 0.2 , . . . , 1 Recall >= 0, 0.1, 0.2, ..., 1R ec todo _>=0 ,0.1 ,0.2 ,... ,1 de11 11Precisión P Precisión a 11 pipsPrec i s i ó n máx , luegoAP APUna P es esto11 1111P recisión PrecisiónValor medio de Prec i si o n .
EnCOV 2010 COV2010Para VOC 2010 y posteriores, se requiere Recall para cadaR ecall diferenteRecuperar valor (incluyendo 0 y 1), seleccionar si es mayor o igual a estos Recuperar RecuperarPrecisión P Precisiónen el valor R ec a llPrecisión valor máximo ,luego calcular PR PR _Área bajo la curva PR como AP APUn valor P.
COCOCOCOConjunto de datos de COCO , conjunto de variosIOU IOUI O U Umbral (0.5 − 0.95 0.5-0.950.50,95 ,0,05 0,050,05 es el tamaño de paso), en cadaIOU IOUHay un cierto tipo de AP APumbral I O UUn valor P , y luego encontrar diferentesIOU IOUAP APen el Umbral I O UUn promedio de P es el AP APfinalUn valor P.
m AP m APCálculo de m AP

Como sugiere el nombre, todas las clases de AP APUn valor P promedio esm AP mAPm A P

4. Medición de la eficiencia del modelo

FLOP (operaciones de punto flotante)

Se supone que la implementación de la operación de convolución tiene la forma de una ventana deslizante y la función no lineal no consume recursos informáticos. Luego, para los FLOP s FLOP del kernel de convoluciónF L OP s为: FLOP s = 2 HW ( C en K 2 + 1 ) C out FLOPs = 2HW(C_{in}K^{2}+1)C_{out}F L OP s=2 H W ( Cenk2+1 ) Cfuera de tidonde HHH ,WWWC en C_{in}Cenes la altura, el ancho y el número de canal de las entidades de entrada, KKK es el ancho y la longitud del kernel de convolución,C out C_{out}Cfuera de ties el número de canales de salida. Al mismo tiempo, se supone que el tamaño de la entrada y la salida es el mismo.

Para capas totalmente conectadas: FLOP = ( 2 I − 1 ) O FLOP = (2I - 1)OF L OP s=( 2I _1 ) O ,III es la dimensión de la entrada,OOO es la dimensión de salida.

Supongo que te gusta

Origin blog.csdn.net/qq_52302919/article/details/131652253
Recomendado
Clasificación