1.再复习一遍accuracy, precision, recall, F1 score:
2. 再复习一遍ROC、AUC
ROC曲线的横坐标为false positive rate(FPR),纵坐标为true positive rate(TPR)
AUC(Area Under Curve)被定义为ROC曲线下的面积。又由于ROC曲线一般都处于y=x这条直线的上方,所以AUC的取值范围在0.5和1之间。使用AUC值作为评价标准是因为很多时候ROC曲线并不能清晰的说明哪个分类器的效果更好,而作为一个数值,对应AUC更大的分类器效果更好
3. Hit Rate
在top-K推荐中,HR是一种常用的衡量召回率的指标,计算公式为:
举个简单的例子,三个用户购买的商品个数分别是10,12,8, 模型得到的top-10推荐列表中,分别有6个,5个,4个在测试集中,那么此时HR的值是 (6+5+4)/(10+12+8) = 0.5。
4. MAP(Mean Average Precision)
MAP(Mean Average Precision)本是在信息检索领域用以衡量搜索引擎的排序性能的评价指标,对于推荐系统,可以将推荐列表视为一个排序列表。例如对于【命中,命中,未命中,未命中,未命中】和【未命中,未命中,未命中,命中,命中】这两个top-5的推荐列表,显然他们的precision都是2/5,但是显然第一个推荐列表的性能要高于第二个推荐列表,因为其在第1、2位就已命中。
MAP可以由它的三个部分来理解:P,AP,MAP
4.1 P: precision
正确率只是考虑了返回结果中相关文档的个数,没有考虑文档之间的序。对一个搜索引擎或推荐系统而言返回的结果必然是有序的,而且越相关的文档排的越靠前越好,于是有了AP的概念。
4.2 AP: average precision
对一个有序的列表,计算AP的时候要先求出每个位置上的precision,然后对所有的位置的precision再做个average。如果该位置的文档是不相关的则该位置 precision=0.
对于推荐列表【命中,命中,未命中,未命中,未命中】(假设用户实际购买了3种商品,而我们的推荐系统在前5个只给出了2个)
而对于推荐列表【未命中,未命中,未命中,命中,命中】(假设用户实际购买了3种商品,而我们的推荐系统在前5个只给出了2个):
4.3 MAP
那么对于MAP(Mean Average Precision),就很容易知道即为所有用户 u 的AP再取均值(mean)
5、Normalized Discounted Cummulative Gain(NDCG)
归一化折损累计增益(NDCG) 这个指标通常用来评价搜索结果算法.
5.1 累计增益(CG)
CG,cumulative gain,是DCG的前身,只考虑到了相关性的关联程度,没有考虑到位置的因素。它是一个搜素结果相关性分数的总和。指定位置p上的CG为:
代表i这个位置上的相关度。
举例:假设搜索“篮球”结果,最理想的结果是:B1、B2、 B3。而出现的结果是 B3、B1、B2的话,CG的值是没有变化的,因此需要下面的DCG。
5.2 折损累计增益(DCG)
DCG, Discounted 的CG,就是在每一个CG的结果上除以一个折损值,为什么要这么做呢?目的就是为了让排名越靠前的结果越能影响最后的结果。假设排序越往后,价值越低。到第i个位置的时候,它的价值是1/log2(i+1),所以:
5.3 归一化折损累计增益(NDCG)
NDCG: Normalized 的DCG,由于不同检索词搜索之后返回的数量是不一致的,而DCG是一个累加的值,没法针对两个不同的搜索结果进行比较(因为返回结果越多,DCG会越大),因此需要归一化处理,这里是除以IDCG。
IDCG为理想情况下最大的DCG值。
5.4 举例
假设搜索回来的6个结果,其相关性分数分别是 3、2、3、0、1、2
所以 DCG = 3+1.26+1.5+0+0.38+0.71 = 6.86
为了求NDCG,首先需要计算IDCG:假如我们实际召回了8个物品,除了上面的6个,还有两个结果,假设第7个相关性为3,第8个相关性为0。那么在理想情况下的相关性分数排序应该是:3、3、3、2、2、1、0、0。计算IDCG@6:
所以IDCG = 3+1.89+1.5+0.86+0.77+0.35 = 8.37
因此,最终 NDCG@6 = DCG/IDCG = 6.86/8.37 = 81.96%