本文簡要介紹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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。