sklearn.metrics.jaccard_score¶
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 somiglianza Jaccard, definito come la dimensione dell’intersezione divisa per la dimensione dell’unione di due insiemi di etichette, è usato per confrontare l’insieme delle etichette previste per un campione con l’insieme corrispondente di etichette in y_true
.
Leggi di più nella Guida utente.
Parametri y_true1d array-like, o array di indicatori di etichette / matrice sparsa
Etichette di verità di base (corrette).
y_pred1d array-like, o array di indicatori di etichette / matrice sparsa
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 solo i punteggi 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 nelle previsioni e nelle 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()