top_k_accuracy_score#

sklearn.metrics.top_k_accuracy_score(y_true, y_score, *, k=2, normalize=True, sample_weight=None, labels=None)[source]#

Top-k Genauigkeitsklassifikations-Score.

Diese Metrik berechnet die Anzahl der Fälle, in denen das korrekte Label unter den k am höchsten vorhergesagten Labels (sortiert nach vorhergesagten Scores) liegt. Beachten Sie, dass der Multilabel-Fall hier nicht abgedeckt ist.

Mehr dazu im Benutzerhandbuch

Parameter:
y_truearray-ähnlich mit Form (n_samples,)

Wahre Labels.

y_scorearray-ähnlich der Form (n_samples,) oder (n_samples, n_classes)

Ziel-Scores. Dies können entweder Wahrscheinlichkeitsschätzungen oder nicht-threshold-basierte Entscheidungswerte sein (wie sie bei einigen Klassifikatoren von decision_function zurückgegeben werden). Der binäre Fall erwartet Scores mit der Form (n_samples,), während der multiklasse Fall Scores mit der Form (n_samples, n_classes) erwartet. Im multiklassen Fall muss die Reihenfolge der Klassen-Scores mit der Reihenfolge von labels übereinstimmen, falls diese angegeben sind, andernfalls mit der numerischen oder lexikographischen Reihenfolge der Labels in y_true. Wenn y_true nicht alle Labels enthält, muss labels angegeben werden.

kint, default=2

Anzahl der wahrscheinlichsten Ergebnisse, die zur Ermittlung des korrekten Labels berücksichtigt werden.

normalizebool, default=True

Wenn True, wird der Anteil korrekt klassifizierter Samples zurückgegeben. Andernfalls wird die Anzahl korrekt klassifizierter Samples zurückgegeben.

sample_weightarray-like der Form (n_samples,), Standardwert=None

Stichproben-Gewichte. Wenn None, erhalten alle Stichproben das gleiche Gewicht.

labelsarray-like der Form (n_classes,), Standard=None

Nur Multiklasse. Liste von Labels, die die Klassen in y_score indizieren. Wenn None, wird die numerische oder lexikographische Reihenfolge der Labels in y_true verwendet. Wenn y_true nicht alle Labels enthält, muss labels angegeben werden.

Gibt zurück:
scorefloat

Der Top-k-Genauigkeitsscore. Die beste Leistung ist 1 bei normalize == True und die Anzahl der Samples bei normalize == False.

Siehe auch

accuracy_score

Berechnet den Genauigkeits-Score. Standardmäßig gibt die Funktion den Anteil der korrekten Vorhersagen geteilt durch die Gesamtzahl der Vorhersagen zurück.

Anmerkungen

In Fällen, in denen zwei oder mehr Labels gleiche vorhergesagte Scores erhalten, werden zuerst die Labels mit den höchsten Indizes ausgewählt. Dies kann das Ergebnis beeinflussen, wenn das korrekte Label aufgrund dessen nach dem Schwellenwert liegt.

Beispiele

>>> import numpy as np
>>> from sklearn.metrics import top_k_accuracy_score
>>> y_true = np.array([0, 1, 2, 2])
>>> y_score = np.array([[0.5, 0.2, 0.2],  # 0 is in top 2
...                     [0.3, 0.4, 0.2],  # 1 is in top 2
...                     [0.2, 0.4, 0.3],  # 2 is in top 2
...                     [0.7, 0.2, 0.1]]) # 2 isn't in top 2
>>> top_k_accuracy_score(y_true, y_score, k=2)
0.75
>>> # Not normalizing gives the number of "correctly" classified samples
>>> top_k_accuracy_score(y_true, y_score, k=2, normalize=False)
3.0