Hamming loss#

  • Esta función computa el promedio de la función de pérdida de Hamming o distancia de Hamming entre dos conjuntos de muestras.

  • La distancia de Hamming entre dos strings de igual longitud es el número de posiciones en que los símbolos son diferentes. Tambien se define como la cantidad mínima de sustituciones requeridas para transformar un string en otro.

  • La función de pérdida se define como:

    L_\text{Hamming}(y, \hat{y}) = \frac{1}{n_\text{samples} \times n_\text{labels}} \sum_{i=0}^{n_\text{samples} - 1} \sum_{j=0}^{n_\text{labels} - 1} 1(\hat{y}_{i,j} \ne y_{i,j})

    donde:

    • \hat{y}_{i,j} es el valor pronosticado para la j-ésima etiqueta de la muestra i.

    • y_{i,j} es el valor verdadero.

    • n_\text{samples} es el número de muestras.

    • n_\text{labels} es el número de etiquetas.

  • La ecuación anterior no puede ser usada para clasificación con múltiples clases.

[1]:
from sklearn.metrics import hamming_loss

y_pred = [1, 2, 3, 4]
y_true = [2, 2, 3, 4]

hamming_loss(
    # -------------------------------------------------------------------------
    # Ground truth (correct) labels.
    y_true=y_true,
    # -------------------------------------------------------------------------
    # Predicted labels, as returned by a classifier.
    y_pred=y_pred,
    # -------------------------------------------------------------------------
    # Sample weights.
    sample_weight=None,
)
[1]:
0.25
[2]:
import numpy as np

#
# y_true:
#   [[0, 1],
#    [1, 1]]
#
# y_pred:
#   [[0, 0],
#    [0, 0]]
#

hamming_loss(
    y_true=np.array([[0, 1], [1, 1]]),
    y_pred=np.zeros((2, 2)),
)
[2]:
0.75