sklearn.metrics.
jaccard_score
(y_true, y_pred, *, labels=None, pos_label=1, average=’binary’, sample_weight=None, zero_division=’warn’)¶
Jaccard similarity coefficient score.
O índice Jaccard , ou coeficiente de similaridade Jaccard, definido pelo tamanho da intersecção dividida pelo tamanho da união de dois conjuntos de etiquetas, é usado para comparar o conjunto de etiquetas previstas para uma amostra com o conjunto de etiquetas correspondentes em y_true
.
Ler mais no Guia do Usuário.
Parâmetros do tipo array-like y_true1d, ou matriz indicadora de etiqueta / matriz esparsa
Rótulos de verdade (corretos).
Array-like y_pred1d, ou matriz indicadora de array / matriz esparsa
Rótulos previstos, como retornados por um classificador.
Rótulos de forma parecida com a de um classificador (n_classes,), padrão=Nenhum
O conjunto de rótulos a incluir quando average != 'binary'
, e sua ordem se average is None
. As etiquetas presentes nos dados podem ser excluídas, por exemplo para calcular uma média multiclasse ignorando a classe negativa amajority, enquanto que as etiquetas não presentes nos dados irão resultar em 0 componentes em uma média macro. Para alvos com vários rótulos, os rótulos são índices de colunas. Por padrão, todos os rótulos em y_true
ey_pred
são usados em ordem ordenada.
pos_labelstr ou int, padrão=1
A classe a relatar se average='binary'
e os dados são binários.Se os dados forem multiclasse ou multilabel, isto será ignorado; definindo labels=
e average != 'binary'
serão reportados apenas os resultados para aquele label.
média{Nenhum, ‘micro’, ‘macro’, ‘samples’, ‘ponderado’, ‘binário’}, padrão=’binário’
Se None
, as pontuações para cada classe são retornadas. Caso contrário, isto determina o tipo de média executada nos dados:
'binary'
:
Apenas relate resultados para a classe especificada por pos_label
.Isto só é aplicável se os alvos (y_{true,pred}
) forem binários.
'micro'
:
Calcule métricas globalmente contando o total de verdadeiros positivos, falsos negativos e falsos positivos.
'macro'
:
Calcule métricas para cada etiqueta, e encontre o seu significado não-ponderado. Isto não leva em conta o desequilíbrio das etiquetas.
'weighted'
:
Calcular métricas para cada etiqueta, e encontrar a sua média, ponderada por suporte (o número de instâncias verdadeiras para cada etiqueta). Isso significa ‘macro’ para levar em conta o desequilíbrio de rótulos.
'samples'
:
Calcular métricas para cada instância, e encontrar a sua média (apenas significando para classificação multilabel).
amostra_weightarray-like of shape (n_samples,), default=None
Amostras de pesos.
zero_divisão “warn”, {0.0, 1.0}, default=”warn”
Configura o valor a retornar quando há uma divisão zero, ou seja, quando não há valores negativos nas previsões e etiquetas. Se definido como “warn”, isto age como 0, mas um aviso também é levantado.
Retorna scorefloat (se a média não for None) ou array de flutuações, forma =
Veja também
accuracy_score
, f_score
, multilabel_confusion_matrix
Notes
jaccard_score
pode ser uma métrica pobre se houver nopositivos para algumas amostras ou classes. Jaccard é indefinido se houver areno true ou etiquetas previstas, e nossa implementação retornará um scoreof 0 com um aviso.
1
Entrada Wikipedia para o índice Jaccard.
Exemplos
>>> import numpy as np>>> from sklearn.metrics import jaccard_score>>> y_true = np.array(,... ])>>> y_pred = np.array(,... ])
No caso binário:
>>> jaccard_score(y_true, y_pred)0.6666...
No caso multilabel:
>
>>> 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()
No caso multiclasse:
>>> y_pred = >>> y_true = >>> jaccard_score(y_true, y_pred, average=None)array()