sklearn.metrics.
jaccard_score
(y_true, y_pred, *, labels=None, pos_label=1, average=’binary’, sample_weight=None, zero_division=’warn’)¶
Puntuación del coeficiente de similitud de Jaccard.
El índice de Jaccard, o coeficiente de similitud de Jaccard, definido como el tamaño de la intersección dividido por el tamaño de la unión de dos conjuntos de etiquetas, se utiliza para comparar el conjunto de etiquetas previstas para una muestra con el conjunto de etiquetas correspondiente en y_true
.
Más información en la Guía del usuario.
Parámetros y_true1d array-like, o matriz indicadora de etiquetas / matriz dispersa
Etiquetas verdaderas (correctas).
y_pred1d array-like, o matriz indicadora de etiquetas / matriz dispersa
Etiquetas previstas, como las devueltas por un clasificador.
labelsarray-like of shape (n_classes,), default=None
El conjunto de etiquetas a incluir cuando average != 'binary'
, y su orden si average is None
. Las etiquetas presentes en los datos pueden ser excluidas, por ejemplo para calcular un promedio multiclase ignorando una clase mayoritariamente negativa, mientras que las etiquetas no presentes en los datos resultarán en 0 componentes en un macro promedio. Para los objetivos multietiqueta, las etiquetas son índices de columna. Por defecto, todas las etiquetas en y_true
yy_pred
se utilizan en orden ordenado.
pos_labelstr o int, por defecto=1
La clase a informar si average='binary'
y los datos son binarios.Si los datos son multiclase o multietiqueta, esto se ignorará; si se establece labels=
y average != 'binary'
se informará de las puntuaciones de esa etiqueta solamente.
average{None, ‘micro’, ‘macro’, ‘samples’, ‘weighted’, ‘binary’}, default=’binary’
Si None
, se devuelven las puntuaciones de cada clase. De lo contrario, esto determina el tipo de promedio realizado en los datos:
'binary'
:
Sólo informa de los resultados de la clase especificada por pos_label
.Esto es aplicable sólo si los objetivos (y_{true,pred}
) son binarios.
'micro'
:
Calcular las métricas globalmente contando el total de verdaderos positivos,falsos negativos y falsos positivos.
'macro'
:
Calcular las métricas para cada etiqueta, y encontrar su media no ponderada. Esto no tiene en cuenta el desequilibrio de las etiquetas.
'weighted'
:
Calcular las métricas para cada etiqueta, y encontrar su media, ponderada por el soporte (el número de instancias verdaderas para cada etiqueta). Esto altera la ‘macro’ para tener en cuenta el desequilibrio de las etiquetas.
'samples'
:
Calcular las métricas para cada instancia, y encontrar su promedio (sólo es significativo para la clasificación multietiqueta).
sample_weightarray-like of shape (n_samples,), default=None
Ponderes de la muestra.
zero_division «warn», {0.0, 1.0}, default=»warn»
Establece el valor a devolver cuando hay una división cero, es decir, cuando no hay valores negativos en las predicciones y etiquetas. Si se establece en «warn», actúa como 0, pero también se genera una advertencia.
Devuelve scorefloat (si el promedio no es None) o array de floats, shape =
Ver también
accuracy_score
, f_score
, multilabel_confusion_matrix
Nota
jaccard_score
puede ser una métrica pobre si no hay positivos para algunas muestras o clases. Jaccard no está definido si no hay etiquetas verdaderas o predichas, y nuestra implementación devolverá una puntuación de 0 con una advertencia.
1
Entrada de Wikipedia para el índice de Jaccard.
Ejemplos
>>> import numpy as np>>> from sklearn.metrics import jaccard_score>>> y_true = np.array(,... ])>>> y_pred = np.array(,... ])
En el caso binario:
>>> jaccard_score(y_true, y_pred)0.6666...
En el caso multietiqueta:
>>> jaccard_score(y_true, y_pred, average='samples')0.5833...>>> jaccard_score(y_true, y_pred, average='macro')0.6666...>>> jaccard_score(y_true, y_pred, average=None)array()
En el caso multiclase:
>>> y_pred = >>> y_true = >>> jaccard_score(y_true, y_pred, average=None)array()