本文简要介绍python语言中 sklearn.metrics.ndcg_score
的用法。
用法:
sklearn.metrics.ndcg_score(y_true, y_score, *, k=None, sample_weight=None, ignore_ties=False)
计算归一化贴现累积增益。
在应用对数折扣后,将按照预测分数诱导的顺序排列的真实分数相加。然后除以可能的最佳分数(理想 DCG,获得完美排名)以获得介于 0 和 1 之间的分数。
如果真正的标签排名靠前
y_score
,则此排名指标会产生高值。- y_true:ndarray 形状(n_samples,n_labels)
多标签分类的真实目标,或要排名的实体的真实分数。
- y_score:ndarray 形状(n_samples,n_labels)
目标分数可以是概率估计、置信度值或决策的非阈值度量(由 “decision_function” 在某些分类器上返回)。
- k:整数,默认=无
只考虑排名中最高的 k 分数。如果
None
,使用所有输出。- sample_weight:ndarray 形状 (n_samples,),默认 = 无
样本权重。如果
None
,所有样本都被赋予相同的权重。- ignore_ties:布尔,默认=假
假设 y_score 中没有关系(如果 y_score 是连续的,则可能是这种情况)以提高效率。
- normalized_discounted_cumulative_gain:浮点数 [0., 1.]
所有样本的平均 NDCG 分数。
参数:
返回:
参考:
Jarvelin, K. 和 Kekalainen, J. (2002)。 IR 技术的基于累积增益的评估。 ACM 信息系统交易 (TOIS),20(4),422-446。
Wang, Y., Wang, L., Li, Y., He, D., Chen, W., & Liu, T. Y.(2013 年 5 月)。 NDCG排名措施的理论分析。在第 26 届学习理论年会论文集 (COLT 2013)
McSherry, F. 和 Najork, M.(2008 年 3 月)。在存在并列分数的情况下有效地计算信息检索性能度量。在欧洲信息检索会议上(第 414-421 页)。施普林格,柏林,海德堡。
例子:
>>> import numpy as np >>> from sklearn.metrics import ndcg_score >>> # we have groud-truth relevance of some answers to a query: >>> true_relevance = np.asarray([[10, 0, 0, 1, 5]]) >>> # we predict some scores (relevance) for the answers >>> scores = np.asarray([[.1, .2, .3, 4, 70]]) >>> ndcg_score(true_relevance, scores) 0.69... >>> scores = np.asarray([[.05, 1.1, 1., .5, .0]]) >>> ndcg_score(true_relevance, scores) 0.49... >>> # we can set k to truncate the sum; only top k answers contribute. >>> ndcg_score(true_relevance, scores, k=4) 0.35... >>> # the normalization takes k into account so a perfect answer >>> # would still get 1.0 >>> ndcg_score(true_relevance, true_relevance, k=4) 1.0 >>> # 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 (normalized) >>> # true relevance of our top predictions: (10 / 10 + 5 / 10) / 2 = .75 >>> ndcg_score(true_relevance, scores, k=1) 0.75 >>> # 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: >>> ndcg_score(true_relevance, ... scores, k=1, ignore_ties=True) 0.5
相关用法
- Python sklearn non_negative_factorization用法及代码示例
- Python sklearn normalized_mutual_info_score用法及代码示例
- Python sklearn nan_euclidean_distances用法及代码示例
- Python sklearn jaccard_score用法及代码示例
- Python sklearn WhiteKernel用法及代码示例
- Python sklearn CalibrationDisplay.from_predictions用法及代码示例
- Python sklearn VotingRegressor用法及代码示例
- Python sklearn gen_batches用法及代码示例
- Python sklearn ExpSineSquared用法及代码示例
- Python sklearn MDS用法及代码示例
- Python sklearn adjusted_rand_score用法及代码示例
- Python sklearn MLPClassifier用法及代码示例
- Python sklearn train_test_split用法及代码示例
- Python sklearn RandomTreesEmbedding用法及代码示例
- Python sklearn GradientBoostingRegressor用法及代码示例
- Python sklearn GridSearchCV用法及代码示例
- Python sklearn log_loss用法及代码示例
- Python sklearn r2_score用法及代码示例
- Python sklearn ShrunkCovariance用法及代码示例
- Python sklearn SelfTrainingClassifier用法及代码示例
- Python sklearn load_svmlight_file用法及代码示例
- Python sklearn make_pipeline用法及代码示例
- Python sklearn MultiTaskLasso用法及代码示例
- Python sklearn KBinsDiscretizer用法及代码示例
- Python sklearn power_transform用法及代码示例
注:本文由纯净天空筛选整理自scikit-learn.org大神的英文原创作品 sklearn.metrics.ndcg_score。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。