sklearn.metrics.dcg_score

sklearn.metrics.dcg_score()

Calcula la Ganancia Acumulada Descontada.

Suma las verdaderas puntuaciones clasificadas en el orden inducido por las puntuaciones predichas, después de aplicar un descuento logarítmico.

Esta métrica de clasificación produce un valor alto si las etiquetas verdaderas son clasificadas como altas por y_score.

Normalmente se prefiere la Ganancia Cumulativa Normalizada con Descontado (NDCG, calculada por ndcg_score).

Parámetros
y_truendarray de forma (n_samples, n_labels)

Objetivos reales de clasificación multietiqueta, o verdaderas puntuaciones de entidades a clasificar.

y_scorendarray de forma (n_samples, n_labels)

Los puntajes objetivo, pueden ser estimados de probabilidad, valores de confianza, o una medida sin umbrales de decisiones (como es devuelva por «decision_function» en algunos clasificadores).

kentero, default=None

Sólo considera las puntuaciones k más altas en la clasificación. Si es None, utiliza todas las salidas.

log_baseflotante, default=2

Base del logaritmo utilizado para el descuento. Un valor bajo significa un descuento más nítido (los resultados tope son más importantes).

sample_weightndarray de forma (n_samples,), default=None

Ponderaciones de las muestras. Si es None, todas las muestras tienen el mismo ponderado.

ignore_tiesbooleano, default=False

Asume que no hay vínculos en y_score (lo que probablemente sea el caso si y_score es continuo) para las ganancias de eficiencia.

Devuelve
discounted_cumulative_gainflotante

Los puntajes de muestra DCG promediados.

Ver también

ndcg_score

La Ganancia Acumulativa con Descuento (DCG) dividida por la Ganancia Acumulativa con Descuento Ideal (el DCG obtenido por un ranking perfecto), para tener un puntaje entre 0 y 1.

Referencias

Entrada de Wikipedia para Ganancia Acumulada Descontada.

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, May). A theoretical analysis of NDCG ranking measures. In Proceedings of the 26th Annual Conference on Learning Theory (COLT 2013).

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

Ejemplos

>>> from sklearn.metrics import dcg_score
>>> # we have groud-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