sklearn.metrics.
jaccard_score
(y_true, y_pred, *, labels=None, pos_label=1, average=’binary’, sample_weight=None, zero_division=’warn’)¶
Punteggio del coefficiente di similarità Jaccard.
L’indice Jaccard, o coefficiente di similarità Jaccard, definito come la dimensione dell’intersezione divisa per la dimensione dell’unione di due insiemi di etichette, è usato per confrontare l’insieme di etichette previste per un campione con l’insieme corrispondente di etichette in y_true
.
Leggi di più nella Guida dell’utente.
Parametri y_true1d array-like, o array di indicatori di etichette / matrice sparsa
Le etichette della verità di base (corrette).
y_pred1d array-like, o array di indicatori di etichette / matrice sparsa
Le etichette previste, come restituite da un classificatore.
labelsarray-like di forma (n_classes,), default=None
L’insieme di etichette da includere quando average != 'binary'
, e il loro ordine se average is None
. Le etichette presenti nei dati possono essere escluse, per esempio per calcolare una media multiclasse ignorando una classe negativa maggioritaria, mentre le etichette non presenti nei dati daranno come risultato 0 componenti in una media macro. Per gli obiettivi multiclasse, le etichette sono indici di colonna. Per default, tutte le etichette in y_true
ey_pred
sono usate in ordine ordinato.
pos_labelstr o int, default=1
La classe da riportare se average='binary'
e i dati sono binari.Se i dati sono multiclasse o multilabel, questo verrà ignorato; impostando labels=
e average != 'binary'
verranno riportati i punteggi solo per quell’etichetta.
average{None, ‘micro’, ‘macro’, ‘samples’, ‘weighted’, ‘binary’}, default=’binary’
Se None
, vengono riportati i punteggi per ogni classe. Altrimenti, questo determina il tipo di mediazione eseguita sui dati:
'binary'
:
Riporta solo i risultati per la classe specificata da pos_label
.Questo è applicabile solo se gli obiettivi (y_{true,pred}
) sono binari.
'micro'
:
Calcola le metriche globalmente contando il totale di veri positivi, falsi negativi e falsi positivi.
'macro'
:
Calcolare le metriche per ogni etichetta, e trovare la loro media non pesata. Questo non tiene conto dello squilibrio delle etichette.
'weighted'
:
Calcola le metriche per ogni etichetta e trova la loro media, ponderata per il supporto (il numero di istanze vere per ogni etichetta). Questo altera la ‘macro’ per tenere conto dello squilibrio delle etichette.
'samples'
:
Calcola le metriche per ogni istanza, e trova la loro media (significativa solo per la classificazione multilabel).
sample_weightarray-like of shape (n_samples,), default=None
Pesi campione.
zero_division “warn”, {0.0, 1.0}, default=”warn”
Imposta il valore da restituire quando c’è una divisione zero, cioè quando non ci sono valori negativi in previsioni ed etichette. Se impostato su “warn”, si comporta come 0, ma viene anche generato un avviso.
Restituisce scorefloat (se average non è None) o array di float, shape =
Vedi anche
accuracy_score
, f_score
, multilabel_confusion_matrix
Note
jaccard_score
può essere una metrica scarsa se ci sono nopositivi per alcuni campioni o classi. Jaccard è indefinito se non ci sono etichette vere o predette, e la nostra implementazione restituirà un punteggio di 0 con un avvertimento.
1
Voce di Wikipedia per l’indice Jaccard.
Esempi
>>> import numpy as np>>> from sklearn.metrics import jaccard_score>>> y_true = np.array(,... ])>>> y_pred = np.array(,... ])
Nel caso binario:
>>> jaccard_score(y_true, y_pred)0.6666...
Nel 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()
Nel caso multiclasse:
>>> y_pred = >>> y_true = >>> jaccard_score(y_true, y_pred, average=None)array()