dcg_score#
- sklearn.metrics.dcg_score(y_true, y_score, *, k=None, log_base=2, sample_weight=None, ignore_ties=False)[источник]#
Вычисление дисконтированного кумулятивного выигрыша.
Суммируйте истинные оценки, ранжированные в порядке, заданном предсказанными оценками, после применения логарифмического дисконтирования.
Эта метрика ранжирования дает высокое значение, если истинные метки находятся высоко в ранжировании по
y_score.Обычно предпочтительна нормализованная дисконтированная совокупная выгода (NDCG, вычисляемая с помощью ndcg_score).
- Параметры:
- y_truearray-like формы (n_samples, n_labels)
Истинные цели многометочной классификации или истинные оценки объектов для ранжирования.
- y_scorearray-like формы (n_samples, n_labels)
Целевые оценки, которые могут быть либо вероятностными оценками, значениями достоверности, либо немасштабированными мерами решений (как возвращаемые “decision_function” в некоторых классификаторах).
- kint, default=None
Учитывать только k наивысших оценок в ранжировании. Если None, использовать все выходные данные.
- log_basefloat, по умолчанию=2
Основание логарифма, используемого для скидки. Низкое значение означает более резкую скидку (первые результаты более важны).
- sample_weightarray-like формы (n_samples,), по умолчанию=None
Веса выборок. Если
None, всем образцам присваивается одинаковый вес.- ignore_tiesbool, по умолчанию=False
Предположим, что в y_score нет совпадений (что вероятно, если y_score непрерывен) для повышения эффективности.
- Возвращает:
- дисконтированный кумулятивный выигрышfloat
Усреднённые оценки DCG для образцов.
Смотрите также
ndcg_scoreДисконтированный кумулятивный выигрыш, деленный на Идеальный дисконтированный кумулятивный выигрыш (DCG, полученный для идеального ранжирования), чтобы получить оценку от 0 до 1.
Ссылки
Запись в Википедии о дисконтированном кумулятивном выигрыше.
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.
Примеры
>>> 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