码迷,mamicode.com
首页 > 其他好文 > 详细

mahout推荐9-进行推荐

时间:2014-08-04 14:15:27      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:blog   java   io   文件   数据   for   ar   代码   

基于用户的推荐和基于物品的推荐

两种算法,均依赖于两个事物(用户或物品)之间的相似性度量(等同性定义),相似性度量的方法:PearsonCorrealation皮尔逊相关系数,对数似然值Loglikelihood,斯皮尔曼相关系数SpearmanCorrelation,谷本系数TanimotoCoefficient等。

推荐算法:Slope-one,基于SVD和基于聚类的推荐算法。

基于用户的推荐:

代码示例:

	public static void main(String[] args) throws Exception {
		//装载数据文件,实现存储,并为计算提供所需的所有偏好,用户和物品数据
		DataModel model = new FileDataModel(new File("data/intro.csv"));
		//用户相似度,给出两个用户的相似度,有多种度量方式,封装了用户间相似性的概念
		UserSimilarity similarity = new PearsonCorrelationSimilarity(model);
		//用户邻居,与给定用户最相似的一组用户,封装了最相似用户组的概念
		UserNeighborhood neighborhood = new NearestNUserNeighborhood(2,
				similarity, model);
		//推荐引擎,合并这些组件,实现推荐
		Recommender recommender = new GenericUserBasedRecommender(model,
				neighborhood, similarity);
		//为用户1推荐一件物品1,1
		List<RecommendedItem> recommendedItems = recommender.recommend(1, 1);
		//输出
		for (RecommendedItem item : recommendedItems) {
			System.out.println(item);
		}
	}

 引入新的相似性度量,结果就会发生显著的变化。mahout推荐是由 多个组件搭配而成,而非单一的推荐引擎,其他各个组件的组合可以定制,从而针对特定应用提供理想的推荐。

  1、数据模型,有datamodel实现

  2.用户间的相似性度量,由usersimilarity实行

  3.用户邻域的定义,有userneighborhood实现

  4.推荐引擎,由一个recommender实现(此处为GenericUserBasedRecommender)

 

mahout推荐9-进行推荐,布布扣,bubuko.com

mahout推荐9-进行推荐

标签:blog   java   io   文件   数据   for   ar   代码   

原文地址:http://www.cnblogs.com/jsunday/p/3889923.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!