dcg_score#

sklearn.metrics.dcg_score(y_true, y_score, *, k=None, log_base=2, sample_weight=None, ignore_ties=False)[Quelle]#

Berechne Discounted Cumulative Gain.

Summiert die wahren Werte, sortiert in der Reihenfolge, die durch die vorhergesagten Werte induziert wird, nach Anwendung eines logarithmischen Abzugs.

Diese Ranking-Metrik liefert einen hohen Wert, wenn wahre Labels von y_score hoch eingestuft werden.

Üblicherweise wird der normalisierte diskontierte kumulative Gewinn (NDCG, berechnet mit ndcg_score) bevorzugt.

Parameter:
y_truearray-like von der Form (n_samples, n_labels)

Wahre Ziele der Multilabel-Klassifizierung oder wahre Werte von zu rankenden Entitäten.

y_scorearray-like von der Form (n_samples, n_labels)

Zielwerte, können entweder Wahrscheinlichkeitsschätzungen, Konfidenzwerte oder nicht-schwellenwertbasierte Entscheidungsmaße sein (wie von "decision_function" bei einigen Klassifikatoren zurückgegeben).

kint, Standard=None

Berücksichtigt nur die höchsten k Werte im Ranking. Wenn None, werden alle Ausgaben verwendet.

log_basefloat, Standard=2

Basis des für den Abzug verwendeten Logarithmus. Ein niedriger Wert bedeutet einen stärkeren Abzug (Top-Ergebnisse sind wichtiger).

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

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

ignore_tiesbool, Standard=False

Geht davon aus, dass es keine Gleichstände in y_score gibt (was wahrscheinlich der Fall ist, wenn y_score kontinuierlich ist) zur Effizienzsteigerung.

Gibt zurück:
discounted_cumulative_gainfloat

Die gemittelten DCG-Werte der Stichproben.

Siehe auch

ndcg_score

Der diskontierte kumulative Gewinn geteilt durch den idealen diskontierten kumulativen Gewinn (den DCG, der für ein perfektes Ranking erzielt wird), um einen Wert zwischen 0 und 1 zu erhalten.

Referenzen

Wikipedia-Eintrag zu Discounted Cumulative Gain.

Jarvelin, K., & Kekalainen, J. (2002). Cumulated gain-based evaluation of IR techniques. ACM Transactions on Information Systems (TOIS), 20(4), 422-446.

Wang, Y., Wang, L., Li, Y., He, D., Chen, W., & Liu, T. Y. (2013, Mai). A theoretical analysis of NDCG ranking measures. In Proceedings of the 26th Annual Conference on Learning Theory (COLT 2013).

McSherry, F., & Najork, M. (2008, März). Computing information retrieval performance measures efficiently in the presence of tied scores. In European conference on information retrieval (pp. 414-421). Springer, Berlin, Heidelberg.

Beispiele

>>> import numpy as np
>>> from sklearn.metrics import dcg_score
>>> # we have ground-truth relevance of some answers to a query:
>>> true_relevance = np.asarray([[10, 0, 0, 1, 5]])
>>> # we predict scores for the answers
>>> scores = np.asarray([[.1, .2, .3, 4, 70]])
>>> dcg_score(true_relevance, scores)
9.49
>>> # we can set k to truncate the sum; only top k answers contribute
>>> dcg_score(true_relevance, scores, k=2)
5.63
>>> # now we have some ties in our prediction
>>> scores = np.asarray([[1, 0, 0, 0, 1]])
>>> # by default ties are averaged, so here we get the average true
>>> # relevance of our top predictions: (10 + 5) / 2 = 7.5
>>> dcg_score(true_relevance, scores, k=1)
7.5
>>> # we can choose to ignore ties for faster results, but only
>>> # if we know there aren't ties in our scores, otherwise we get
>>> # wrong results:
>>> dcg_score(true_relevance,
...           scores, k=1, ignore_ties=True)
5.0