dcg_score
- sklearn.metrics.dcg_score(y_true, y_score, *, k=None, log_base=2, sample_weight=None, ignore_ties=False)[исходный код]
-
Вычисляет дисконтированное накопленное усиление (DCG).
Суммирует истинные оценки, упорядоченные в соответствии с предсказанными оценками, с применением логарифмического дисконтирования.
Эта метрика ранжирования принимает высокое значение, если истинные метки занимают высокие позиции по
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). Оценка методов информационного поиска на основе накопленного усиления. ACM Transactions on Information Systems (TOIS), 20(4), 422-446.
Wang, Y., Wang, L., Li, Y., He, D., Chen, W., & Liu, T. Y. (2013, май). Теоретический анализ мер ранжирования NDCG. В материалах 26-й ежегодной конференции по теории обучения (COLT 2013).
McSherry, F., & Najork, M. (2008, март). Эффективное вычисление показателей эффективности информационного поиска при наличии совпадающих оценок. В материалах Европейской конференции по информационному поиску (с. 414-421). Springer, Берлин, Гейдельберг.
Примеры
>>> 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
© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.metrics.dcg_score.html