mahout推荐10-尝试GroupLens数据集

数据集下载地址:http://grouplens.org/datasets/movielens/ 之前用的是100K的,现在需要下载MovieLens 10M,使用里面的ratings.dat

前提:因为文件不符合mahout要求的文件输入格式,需要进行转换,但是example里提供了一个解析这个文件的类GrouplensDataModel,所以直接用了。

package mahout;

import java.io.File;

import org.apache.mahout.cf.taste.common.TasteException;
import org.apache.mahout.cf.taste.impl.eval.LoadEvaluator;
import org.apache.mahout.cf.taste.impl.neighborhood.NearestNUserNeighborhood;
import org.apache.mahout.cf.taste.impl.recommender.GenericUserBasedRecommender;
import org.apache.mahout.cf.taste.impl.similarity.PearsonCorrelationSimilarity;
import org.apache.mahout.cf.taste.model.DataModel;
import org.apache.mahout.cf.taste.neighborhood.UserNeighborhood;
import org.apache.mahout.cf.taste.recommender.Recommender;
import org.apache.mahout.cf.taste.similarity.UserSimilarity;
import org.apache.mahout.cf.taste.similarity.precompute.example.GroupLensDataModel;

public class GroupLensDataModelTest {

	public static void main(String[] args) throws Exception {
		//使用定制的GrouplensDataModel,如果没有转换数据集成为csv格式的
		DataModel dataModel = new GroupLensDataModel(new File(
				"data/ratings.data"));
		//皮尔逊相关系数,衡量用户相似度
		UserSimilarity userSimilarity = new PearsonCorrelationSimilarity(
				dataModel);
		//构建用户邻居,100个
		UserNeighborhood userNeighborhood = new NearestNUserNeighborhood(100,
				userSimilarity, dataModel);
		//推荐引擎
		Recommender recommender = new GenericUserBasedRecommender(dataModel,
				userNeighborhood, userSimilarity);
		//运行
		LoadEvaluator.runLoad(recommender);
	}
}

运行试试,如果你的内存足够大的话。

输出结果:

我的文件还没有下载下来呢!!!!!!!!!!

mahout推荐10-尝试GroupLens数据集

时间: 2024-10-24 15:37:59

mahout推荐10-尝试GroupLens数据集的相关文章

mahout推荐4-评估GroupLens数据集

使用GroupLens数据集ua.base 这是一个tab分割的文件,用户Id,物品Id,评分(偏好值),以及附加信息.可用吗?之前使用的是CSV格式,现在是tsv格式,可用,使用FileDataModel 对mahout推荐2中的评估程序使用这个数据集测试: package mahout; import java.io.File; import org.apache.mahout.cf.taste.common.TasteException; import org.apache.mahout.

Mahout推荐算法API详解

前言 用Mahout来构建推荐系统,是一件既简单又困难的事情.简单是因为Mahout完整地封装了“协同过滤”算法,并实现了并行化,提供非常简单的API接口:困难是因为我们不了解算法细节,很难去根据业务的场景进行算法配置和调优. 本文将深入算法API去解释Mahout推荐算法底层的一些事. 1. Mahout推荐算法介绍 Mahoutt推荐算法,从数据处理能力上,可以划分为2类: 单机内存算法实现 基于Hadoop的分步式算法实现 1). 单机内存算法实现 单机内存算法实现:就是在单机下运行的算法

Mahout推荐算法API详解【一起学Mahout】

阅读导读: 1.mahout单机内存算法实现和分布式算法实现分别存在哪些问题? 2.算法评判标准有哪些? 3.什么会影响算法的评分? 1. Mahout推荐算法介绍 Mahout推荐算法,从数据处理能力上,可以划分为2类: 单机内存算法实现 基于Hadoop的分步式算法实现 1). 单机内存算法实现 单机内存算法实现:就是在单机下运行的算法,是由cf.taste项目实现的,像我们熟悉的UserCF,ItemCF都支持单机内存运行,并且参数可以灵活配置.单机算法的基本实例,请参考文章:用Maven

Mahout推荐算法API具体解释【一起学Mahout】

阅读导读: 1.mahout单机内存算法实现和分布式算法实现分别存在哪些问题? 2.算法评判标准有哪些? 3.什么会影响算法的评分? 1. Mahout推荐算法介绍 Mahout推荐算法,从数据处理能力上,能够划分为2类: 单机内存算法实现 基于Hadoop的分步式算法实现 1). 单机内存算法实现 单机内存算法实现:就是在单机下执行的算法,是由cf.taste项目实现的,像我们熟悉的UserCF,ItemCF都支持单机内存执行.而且參数能够灵活配置.单机算法的基本实例.请參考文章:用Maven

从源代码剖析Mahout推荐引擎

本文来自于:http://blog.fens.me/mahout-recommend-engine/ 前言 Mahout框架中cf.taste包实现了推荐算法引擎,它提供了一套完整的推荐算法工具集,同时规范了数据结构,并标准化了程序开发过程.应用推荐算法时,代码也就7-8行,简单地有点像R了.为了使用简单的目标,Mahout推荐引擎必然要做到精巧的程序设计. 本文将介绍Mahout推荐引擎的程序设计. 目录 Mahout推荐引擎概况 标准化的程序开发过程 数据模型 相似度算法工具集 近邻算法工具

[转]Mahout推荐算法API详解

Mahout推荐算法API详解 Hadoop家族系列文章,主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, Avro, Ambari, Chukwa,新增加的项目包括,YARN, Hcatalog, Oozie, Cassandra, Hama, Whirr, Flume, Bigtop, Crunch, Hue等. 从2011年开始,中国进入大数据风起云涌的时代,以Hadoop为代表的家族软件,占

推荐10个免费的HTML编辑器

如果你想开发一个网站,你肯定想要一个很棒的HTML编辑器,一个好的编辑器可以让代码更加整齐格式化,前端显示也会更好,从而提升你的工作效率.下面就为开发者推荐10个免费的HTML编辑器,你可以尝试使用.更多代码编辑器,可以参考<为你推荐10款开发常用的代码编辑器><"我最喜欢的Linux平台代码编辑器”排行榜><10个免费的在线Markdown编辑器>,希望对你有帮助. 1. Phase 5 Phase 5是自从1998年就被人期待和熟知的HTML编辑器,它的亮

Mahout推荐算法之SlopOne

Mahout推荐算法之SlopOne 一.       算法原理 有别于基于用户的协同过滤和基于item的协同过滤,SlopeOne采用简单的线性模型估计用户对item的评分.如下图,估计UserB对ItemJ的偏好 图(1) 在真实情况下,该方法有如下几个问题: 1.  为什么要选择UserA计算? 2.  对大量稀疏的情况如何处理,而这种情况是最为普遍的. 图(2) Item1和item2的相似度:((5-3)+(3-4))/2=0.5 Item1和Item3的相似度:(5-2)/1=3 L

mahout推荐2

设计好了一个推荐程序,如何来完成评估呢? 一般是使用一个真实数据的样例作为测试数据来仿真,来看估计值和实际值的差别,0.0意味着完美的估计,就是没有差别. 一是使用平均差值(直观,易于理解),一是使用均方根. 针对mahout推荐1的推荐程序进行评估: package mahout; import java.io.File; import org.apache.mahout.cf.taste.common.TasteException; import org.apache.mahout.cf.t