最近一直在看推荐系统相关的东西,深深感到人过30后记忆力下降,一些概念看过很容易就忘了,还是记录到这里。
--------------------------
评价一个推荐系统的好坏,有很多种方式,项亮的《推荐系统实践》中已经有比较全面的描述。书中给出了十种评价的维度,其中准确率、召回率、多样性这三种指标可以通过离线实验计算得出。其余的用户满意度、信任度等指标则需要通过问卷调查和在线实验得出。
在《Recommender Systems Handbook》中,论述的更加详细,对实验设计、各种评测指标的来源都很学术化,如推荐物品覆盖程度的测量中,用到了基尼系数(Gini Index)和香农熵(Shannon entropy),这些货太过于高端大气上档次,等有时间再看吧。(不过看得出来《推荐系统实践》写作时参考了《Recommender Systems Handbook》)。
update:重新看了下《推荐系统实践》,里边也提到了基尼系数和香农熵。
实际工程中可使用Mahout的实现来进行离线数据评测,Mahout提供了一套评价器用来做这个事情。评价器分别实现了RecommenderEvaluator和RecommenderIRStatsEvaluator接口,RecommenderEvaluator接口提供了evaluate方法
double evaluate(RecommenderBuilder recommenderBuilder,
DataModelBuilder dataModelBuilder,
DataModel dataModel,
double trainingPercentage,
double evaluationPercentage) throws TasteException;
这个评测器是拿一部分数据做训练集,一部分数据做测试集,返回的是训练集推荐结果与测试集实际结果的差异评测值(即偏好度的差异)。
RecommenderIRStatsEvaluator类似
IRStatistics evaluate(RecommenderBuilder recommenderBuilder,
DataModelBuilder dataModelBuilder,
DataModel dataModel,
IDRescorer rescorer,
int at,
double relevanceThreshold,
double evaluationPercentage) throws TasteException;
这个接口会返回更详细的测评结果IRStatistics。
public interface IRStatistics {
double getPrecision();
double getRecall();
double getFallOut();
double getF1Measure();
double getFNMeasure(double n);
double getNormalizedDiscountedCumulativeGain();
double getReach();
}
IRStatistics中包含的指标就是上边接口列出来的内容,mahout已经很贴心的给出了这些指标在维基上的定义。可以看出来,所有指标都是信息检索(Information_retrieval)这个学科用到的,并不是专门为推荐系统定义的。
下边详细看一下指标含义:
Precision:准确率,有的地方又叫查准率。不贴公式了,直接看计算代码
// Precision
precision.addDatum((double) intersectionSize / (double) numRecommendedItems);
intersectionSize 的定义见下边:
int intersectionSize = 0;
List<RecommendedItem> recommendedItems = recommender.recommend(userID, at, rescorer);
for (RecommendedItem recommendedItem : recommendedItems) {
if (relevantItemIDs.contains(recommendedItem.getItemID())) {
intersectionSize++;
}
}
很明显,intersectionSize 就是推荐结果里边被用户实际点到的数量。而准确率就是实际点到的数量除以推荐的总数量。有5个推荐结果,用户点了一个,准确率就是20%。
Recall:召回率
// Recall
recall.addDatum((double) intersectionSize / (double) numRelevantItems);
召回率是推荐中用户实际点到的数量除以用户点击的总数量。用户一共点了5次,其中一次是推荐系统给出的,召回率是20%.
Reach:到达率,比较简单,就是有推荐的人数占总人数比率,(double) numUsersWithRecommendations / (double) numUsersRecommendedFor)
Fall-out:不知道怎么翻译,计算方式是
fallOut.addDatum((double) (numRecommendedItems - intersectionSize)
/ (double) (numItems - numRelevantItems));
推荐的物品中用户没点击的数量除以 用户每点击的总数量。比较奇怪的一个指标。
NormalizedDiscountedCumulativeGain参见
http://blog.163.com/bit_runner/blog/static/5324221820115206420604/ 。好吧,其实我没看懂
最后F1Measure是准确率和召回率的一个加权平均,是一个对准确率和召回率的综合衡量指标。不多说了。可参考:
http://www.cnblogs.com/bluepoint2009/archive/2012/09/18/precision-recall-f_measures.html
但是。。这些指标里边没有流行度、多样性、新颖性的计算指标。要实现还得自己来。
分享到:
相关推荐
"推荐系统评价指标综述" 推荐系统是一种信息过滤技术,旨在满足用户需求,提供个性化的推荐服务。然而,如何评价推荐系统的效能是一个复杂的问题。本文将对推荐系统评价指标进行综述,涵盖准确度指标、基于排序加权...
本教程主要概述了推荐系统评价的指标和方法,旨在理解和评估推荐算法的性能。 首先,推荐系统的研究背景源于信息爆炸的时代,其中用户既接收信息也创造信息。面对海量信息,推荐系统通过信息过滤技术,如协同过滤、...
信息系统的评价指标是评估其性能、效果和对企业价值的关键工具。评价系统需涵盖定性和定量两个方面,以全面反映其对企业运营的影响。定性指标关注无形的改变,如管理模式的创新、员工满意度的提升,而定量指标则侧重...
然而,由于系统尚处于初级阶段,缺乏一套完整的评价指标体系来综合评价其功效,这对于能源利用的贡献和系统发展建设是不利的。 分布式能源系统是指通过各种发电方式、储能技术和能源管理策略,来解决建筑物电力供应...
模糊综合评价法基于模糊数学理论,通过构建综合评价指标体系,实现对烟叶质量的评价,这种方法的关键在于如何合理量化各评价指标的权重。 人工神经网络作为一种机器学习方法,在烟叶指标评价系统中起到了重要的作用...
本文提到的"分布式航迹融合系统评价指标体系优化"研究,旨在解决这一问题。 分布式航迹融合系统是一种利用多个传感器数据,通过分布式架构来实现目标跟踪和识别的技术。这种系统的优势在于提高了数据处理能力,增强...
在图像处理领域,评价指标是衡量处理效果的关键因素,它们帮助我们量化地理解图像的质量、特征提取的效果以及处理算法的性能。本资料包提供了一系列基于MATLAB的图像处理评价指标,包括熵、互信息、离散度、空间散度...
本资源"指标评价.rar"提供了一套完整的图像评价方法,涵盖了多种图像评价指标,旨在帮助研究人员和工程师分析和比较图像质量。下面将详细介绍这些知识点。 首先,我们要理解图像评价的目的。图像评价主要是为了评估...
矿井通风系统是矿井生产系统的重要组成部分,在矿井安全生产中占据重要的地位。矿井通风系统不仅是矿井安全生产的重要...因此,要评价一个矿井通风系统的安全性,必须建立一种合理的、有效的矿井通风系统评价指标体系。
论文研究-信息系统投资项目评价指标确定与灰色综合评价.pdf, 分析了信息系统投资项目的评价指标体系 ,并提出了灰色综合评价方法 ,以某信息投资项目进行了例证说明.
8. **推荐系统评价指标**:为了评估推荐效果,需要理解准确率、召回率、F1分数、覆盖率、多样性等评价指标,并能利用这些指标调整模型参数。 9. **环境配置**:项目中可能包含环境配置文件(如requirements.txt),...
图像处理评价指标是用来衡量图像质量和处理算法性能的标准,它们可以帮助我们理解图像处理过程中的增益与损失。本篇文章将深入探讨图像评价指标,特别是针对图像去噪方面的评估方法,并以MATLAB作为工具进行实例分析...
电子商务系统评价指标体系的构建需要考虑到电子商务系统的特点和难点,选择评价指标时需要考虑到正效益指标和负效益指标,全方位的指标才能保证评价内容的全面性。 本文提出的制造业企业电子商务系统成功评价指标...