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
kam 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 iny_true. Wenny_truenicht alle Labels enthält, musslabelsangegeben 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_scoreindizieren. WennNone, wird die numerische oder lexikographische Reihenfolge der Labels iny_trueverwendet. Wenny_truenicht alle Labels enthält, musslabelsangegeben werden.
- Gibt zurück:
- scorefloat
Der Top-k-Genauigkeitsscore. Die beste Leistung ist 1 bei
normalize == Trueund die Anzahl der Samples beinormalize == False.
Siehe auch
accuracy_scoreBerechnet 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