如何使用 sklearn 计算具有二元相关性的 NDCG?

How to calculate NDCG with binary relevances using sklearn?

我正在尝试计算二元相关性的 NDCG 分数:

from sklearn.metrics import ndcg_score
y_true = [0, 1, 0]
y_pred = [0, 1, 0]
ndcg_score(y_true, y_pred)

并获得:

ValueError: Only ('multilabel-indicator', 'continuous-multioutput',  
'multiclass-multioutput') formats are supported. Got binary instead

有没有办法让它工作?

请尝试:

from sklearn.metrics import ndcg_score
y_true = [[0, 1, 0]]
y_pred = [[0, 1, 0]]
ndcg_score(y_true, y_pred)
1.0

注意 docs 中的预期形状:

y_true: ndarray, shape (n_samples, n_labels)
y_score: ndarray, shape (n_samples, n_labels)