我正在制定一个建议系统。对于给定的输入,系统输出N个建议。
我们收集了有关用户喜欢的建议的数据。示例:
input1 - output11 output12 output13
input2 - output21
input3 - output31 output32
...
我们现在想要根据这些数据评估我们的系统。第一个指标是,如果这些输出存在于我们系统的建议中,那很容易。
但是现在,我们想测试这些输出在建议中的定位。我们希望给定的输出接近第一个建议。
我们希望系统或每个输入都有一个分数。
根据之前的数据,以下是100%的分数:
input1 - output11 output12 output13 other other other ...
input2 - output21 other other other other other ...
input3 - output31 output32 other other other other ...
...
(output11 output12 output13的顺序不相关。重要的是理想情况下,其中三个应该在前三个建议中)。
我们可以给每个被建议持有的位置给出一个分数,或者计算出从理想位置移位的位置,但是我没有看到一个很好的方法来做到这一点。
是否有可用于此的现有措施?
答案 0 :(得分:1)
你想要一个叫mean average precision的东西(它是一个来自信息检索的指标)。
基本上,对于输出列表中的每个“真实”数据点,您可以计算精度(高于该点的正确条目数/在该点之上的#entries)。如果您在输出列表中的每个实际数据点的位置上平均此数字,您将获得一个符合您需要的指标。