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