Mahout用户推荐 学习笔记

一、
Mahout推荐的推荐系统引擎是模块化的,分为5个主要部分组成:数据模型,相似度算法,近邻算法,推荐算法,算法评分器。

二、
选择UserCF,ItemCF,SlopeOne的 3种推荐算法,进行7种组合的测试。 
userCF1: LogLikelihoodSimilarity + NearestNUserNeighborhood + GenericBooleanPrefUserBasedRecommender 
userCF2: CityBlockSimilarity+ NearestNUserNeighborhood + GenericBooleanPrefUserBasedRecommender  
userCF3: CityBlockSimilarity+ NearestNUserNeighborhood + GenericBooleanPrefUserBasedRecommender  
itemCF1: LogLikelihoodSimilarity + GenericBooleanPrefItemBasedRecommender  
itemCF2: CityBlockSimilarity+ GenericBooleanPrefItemBasedRecommender  
itemCF3: CityBlockSimilarity+ GenericBooleanPrefItemBasedRecommender  
slopeOne:SlopeOneRecommender 

三、
Mahout提供了2个评估推荐器的指标,查准率和召回率(查全率)
Recall和Precision,都是越接近1越好。 
UserCityBlock算法评估的结果是最好的,
基于 UserCF的算法比 ItemCF都要好, SlopeOne算法几乎没有得分。 

四、
程序开发: 新建Java类 
RecommendFactory, 构造数据结构 
RecommenderEvaluator.java, 选出“评估推荐器”验证得分较高的算法 
RecommenderResult.java, 对指定数量的结果人工比较 
RecommenderFilterOutdateResult.java,排除过期职位
RecommenderFilterSalaryResult.java,排除工资过低的职位


五、

架构设计:架构说明
左边是Application业务系统,右边是Mahout,下边是Hadoop集群。

 1. 当数据量不太大,算法复杂时:直接选择用Mahout读取CSV或者Database数据,
在单机内存中进行计算。Mahout是多线程的应用,会并行使用单机所有系统资源。
 2. 当数据量很大时,并行化算法(ItemCF):先把业务系统的数据导入到Hadoop的
HDFS中,然后用Mahout访问HDFS实现并行算法。算法的性能与整个Hadoop集群
有关。
 3. 计算后的结果,保存到数据库中,方便以后查询


六、
程序开发: 新建Java类 
RecommendFactory, 构造数据结构 
RecommenderEvaluator.java, 选出“评估推荐器”验证得分较高的算法 
RecommenderResult.java, 对指定数量的结果人工比较 
RecommenderFilterOutdateResult.java,排除过期职位
RecommenderFilterSalaryResult.java,排除工资过低的职位

七、
 Recall和Precision,都是越接近1越好。
 UserCityBlock算法评估的结果是最好的,基于UserCF的算法比ItemCF都要好,SlopeOne算法几乎没有得分。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值