机器学习Rank-中使用的指标及示例代码
作者:LogM 本文原载于 https://segmentfault.com/u/logm/articles ,不允许转载~ 1. P@KP@K,代表前 K 个预测值中有多少的准确率 (Precision)。 比如,一个模型输出了一组排序,其输出的好坏依次为:好、坏、好、坏、好。 那么, Prec@3 = 2/3 Prec@4 = 2/4 Prec@5 = 3/5 def precision(gt, pred, K): """ Computes the average precision. gt: list, ground truth, all relevant docs' index pred: list, prediction """ hit_num = len(gt & set(pred[:K])) return float(1.0 * hit_num / K)2. MAPAP 是 average precision 的缩写,计算方式是把所有相关文档的 P@K 求平均。 借用上面的例子,一个模型输出了一组排序,依次为:好的结果、坏的结果、好的结果、坏的结果、好的结果。 那么, AP = (1/1 + 2/3 + 3/5) / 3 = 0.76 ...