Spec-Zone.ru › scikit-learn

dcg_score

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

Вычисление дисконтированного кумулятивного выигрыша.

Суммирует истинные значения, ранжированные в порядке, заданном предсказанными значениями, после применения логарифмической скидки.

Этот показатель ранжирования даёт высокое значение, если истинные метки ранжированы высоко y_score.

Обычно предпочтительнее использовать Нормализованный дисконтированный кумулятивный выигрыш (NDCG, вычисляемый функцией ndcg_score).

Параметры:
y_trueмассив-подобный формы (n_samples, n_labels)

Истинные метки многоклассовой классификации или истинные значения объектов, которые необходимо ранжировать.

y_scoreмассив-подобный формы (n_samples, n_labels)

Значения целевых переменных, которые могут быть оценками вероятности, значениями уверенности или не пороговыми показателями решений (как возвращает “decision_function” для некоторых классификаторов).

kint, по умолчанию=None

Рассматривать только k наибольших значений в ранжировании. Если None, использовать все значения.

log_basefloat, по умолчанию=2

Основание логарифма, используемого для скидки. Низкое значение означает более резкую скидку (результаты вверху более важны).

sample_weightмассив-подобный формы (n_samples,), по умолчанию=None

Веса образцов. Если None, всем образцам присваивается одинаковый вес.

ignore_tiesbool, по умолчанию=False

Предположить, что в y_score нет совпадений (что вероятно имеет место, если y_score непрерывный), для повышения эффективности.

Возвращает:
discounted_cumulative_gainfloat

Средневзвешенные значения 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)
np.float64(9.49...)
>>> # we can set k to truncate the sum; only top k answers contribute
>>> dcg_score(true_relevance, scores, k=2)
np.float64(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)
np.float64(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)
np.float64(5.0)

© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.metrics.dcg_score.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API