文本获取和搜索引擎如何评估一个算法是否有效

coursera课程 text retrieval and search engine 第三周 推荐。算法

如何评估一个算法是否有效

思路:构建一个能够重复使用的数据集,而且定义测量办法,来衡量结果。
感性的来讲,使用不一样的算法做用于同一个数据集,获得不一样的结论,根据使用者的使用场景【测量】来判断哪一个算法更有效,这是由于具体的场景使用,这应该是知道什么样的结果是最想要的;
另外一方面能够从理性的角度来衡量,1是精度(Precision),2是召回率(recall)测试

  • 精度 用来度量算法返回的结果中,有多少是有用的
  • 召回率 用来度量在全部的结果中,有多少被返回了

通常说来,高的召回率意味着低精度

当尝试去找更多的文档的时候,那也会查找更多的文件,精度随之下降 从实用性来说,用户使用通常只看返回结果的第一屏【通常是10】,那么能够在这个范围内来衡量【前10】的准确率网站

可使用PR曲线来衡量精度和召回率的关系,一个良好的PR曲线它不会偏向于任何一个算法cdn

对于理想的系统而言,它的精度不会受召回率的影响。一般相同的召回率,精度越高越好,可是若是A/B两条曲线存在交点,这时候就要根据系统本身的使用场景,是关心高召回率仍是高精度来选择blog

F-measure

组合Precision和recall,来衡量算法的有效性排序

如何来衡量排序方式

使用平均精度。ci

图中+号表示正确的结果,从上到下表示顺序文档

平均精度计算中,没有出现的精度,认为是0it

此时,当任意一个文档的顺序发生变化,好比,位置降低,那么总体精度降低,上升,总体精度上身,能对排序产生灵敏的反应io

衡量多个查询的排序影响

MAP:对每个的平均值作算术平均值,即把每一个平均值相加再除以中的数量
gMAP:几何平均值,即把全部的平均值相乘,再作n次幂的根号运算

MAP的值主要取决于最大的值,也就是那个查询特别相关;gMAP则受单次平均值低的影响,因此当想要提升搜索结果的质量,能够用gMAP来衡量,想让总体的查询最好,就用MAP

单个排序衡量

有的查询结果只有1个结果,好比想知道某个网站的主页,使用排序位置的倒数更好,当排在后面的时候,衡量结果越小,更直观

多层次相关性判断

每一个查询结果和查询的关键字的相关性程度是不同的,好比结果1的相关性是3,结果2的相关性是2,值越大,越相关。
一种简便的方式是直接加上全部的相关性,这种方式对相同相关性的顺序没法体现。
这时能够给每一个位置一个加权,一样的相关性,越排在后面,它被用户选中的概率越小,所以共享越低,一种方式是相关性除以logR,R为顺序,这种方式称做DCG。
可是因为他会随着高相关的一直递增,而对于某些结果而言,高相关的结果原本就少,就会失去公正性,因此实行标准化,称做NDCG

A-B测试

将两个方法返回的结果混合起来,在用户不知道的状况下进行选择,用户最终点击那个方法的链接多,就证实那个方法更好

符号统计测试

对于屡次实验的结果作平均值,若是代表实验A的平均值比B的平均值低,真的代表A比B要好么?而不是由于你选的特定的查询呢?

能够经过符号统计来讲:

  • 一是作简单的比较(sign test),若是B比A好,用减号,不然用加号;
  • 二是使用Wilcoxon方法,不只看符号并且看数值,通常来讲,当获得的统计结果在95%区间以外,就能够认为平均值计算是成立的

选择所有文档的子集作判断用于测试

  1. 选择多个排序的方法
  2. 让每一个排序方法返回前k个结果
  3. 将全部的排序返回的k个结果合成一个结果池以供人来判断
  4. 未放入池中的结果认为是不相关

这种方式对已有的文档系统是有效的,可是新的产生的效果可能很差

相关文章
相关标签/搜索