如何计算Web服务排名算法的精度和召回率?

时间:2014-10-14 17:17:10

标签: machine-learning precision-recall

我想计算网络服务排名算法的精确度和召回率。我在数据库中有不同的Web服务。

客户在他/她的搜索中指定一些条件。根据客户的要求,我的算法应该为数据库中的每个Web服务分配一个分数,并检索具有最高分数的Web服务。

我已经在网上搜索并阅读了本网站关于此主题的所有问题,并了解了精确度和召回率,但我不知道如何在我的情况下计算它们。最相关的搜索在此链接中: http://ijcsi.org/papers/IJCSI-8-3-2-452-460.pdf

根据这篇文章,

精确度=最高排名得分/所有服务的总排名

召回=排名最高的分数/第二高的分数

但是,我认为这不是真的。你能帮帮我吗?

非常感谢。

3 个答案:

答案 0 :(得分:0)

没有“精确和排名回忆”这样的东西。精确度和召回是针对二进制分类任务定义的,并扩展为多标签任务。排名需要不同的衡量标准,因为这是一个更复杂的问题。有许多方法可以计算类似于精确度和召回的东西,我将总结一些基本的精确方法,回想起来同样如此:

  • 将搜索算法限制为某些K个最佳结果,并将真阳性计算为在那些K结果中所需结果的查询数。因此精度是您可以在K最佳输出中找到相关结果的查询的一小部分
  • 上述非常严格的变化,设定K = 1,意味着结果必须“最好”
  • 为每个位置分配权重,例如,您可以为每个查询提供1 / T“真阳性”,其中有效结果为V'th。换句话说,如果未返回有效结果,则指定1 / inf = 0,如果它是列表中的第一个,那么1/1 = 1,如果是第二个1/2,等等,现在精度只是平均值这些分数

答案 1 :(得分:0)

正如lejlot指出的那样,使用“精确和召回排名”来衡量排名表现。 “精确”和“召回”的定义在您指出的referenced paper中非常“自定义”。

It is a measure of the tradeoff between the precision and 
recall of the particular ranking algorithm. Precision is the  
accuracy of the ranks i.e. how well the algorithm has 
ranked the services according to the user preferences. 
Recall is the deviation between the top ranked service and 
the next relevant service in the list. Both these metrics are 
used together to arrive at the f-measure which then tests the 
algorithm efficiency. 

原作者可能有一些使用这种定义的特定动机。评估排名算法的一些常用指标包括:

  • 规范化折扣信息增益或nDCG(用于很多参与竞争的广告)
  • Precision @ K,Recall @ K

This论文还列出了一些常见的排名指标。

答案 2 :(得分:-1)

这是我能想到的:

召回可能是获得用户点击前5个查询的一小部分,精确度可能是用户获得第一个查询中的点击与其他查询相比的比例。我不知道,但在这种情况下谈论精确度和召回率似乎很模糊。