MinHash可用于聚类或者计算相似度,详情概述参见"MinHash概述及举例"博客,此处阐述mahout的MinHash实现,mahout用minhash来聚类。
涉及主要类:
org.apache.mahout.clustering.minhash.MinHashDriver org.apache.mahout.clustering.minhash.MinHashMapper org.apache.mahout.clustering.minhash.MinHashReducer
参数说明如下:
Path input //输入数据文件,为SequenceFileInputFormat格式,其key为Text value为VectorWritable Path output //输出数据文件,由debugOutput决定,true时为为SequenceFileOutputFormat false为TextOutputFormat,其key为Text value为VectorWritable或者Text int minClusterSize //最小族数,默认为5,达不到此值直接丢弃 int minVectorSize //最小参与计算的vector size默认为5 String hashType //hash type,有 LINEAR, POLYNOMIAL, MURMUR, MURMUR3,默认LINEAR int numHashFunctions //hash 函数个数,默认10,也就是hash次数 int keyGroups //此值比较有意思,后面详述 int numReduceTasks //reduce个数 boolean debugOutput //决定输出数据文件的数据格式和value值
Mapper执行过程:
1.针对Vector的每个元素执行hash运算,每次获取最小hash值,执行numHashFunctions次,共获取numHashFunctions个最小hash值
2.mahout分族采用的是keyGroups的形式去操作,也就是说需要分的族数,这样就利用每次hash的最小值执行组合操作,keyGroups为1那么不进行任何组合,只要hash最小值有相同的那么就在一个族中
3.针对keyGroups举例如下:
numHashFunctions为3
V1:1,2,3
V2:3,2,1
如果keyGroups为1那么V1和V2在一个族中,属于 1,2,3这三个族
如果keyGroups为2那么V1组合1-2,2-3,3-1;V2组合3-2,2-1,1-3那么V1和V2不在一个族中
也就是说keyGroups可以避免每次Hash的冲突
reduce执行过程:
1.获取每个组的Collection<Writable>
2.如果Collection<Writable>大于指定的minClusterSize 那么保留,反之丢弃
相关推荐
基于Mahout协同过滤实现图书推荐系统_书籍推荐系统源码+项目说明.zip 基于协同过滤的书籍推荐系统,图书推荐系统 最新版本,在原先手动计算皮尔逊相似度和评分矩阵的基础上添加了Mahout实现的协同过滤推荐算法. ...
基于Mahout实现协同过滤推荐算法的电影推荐系统
基于Mahout协同过滤实现图书推荐系统_书籍推荐系统_源码
MovieRecommender基于Mahout实现协同过滤推荐算法的电影推荐系统^
mahout聚类算法的介绍,例如:Canopy,KMeans,Fuzzy-KMeans,Spectral Clustering等参数介绍和适用场景介绍
Mahout:整体框架,实现了协同过滤 Deeplearning4j,构建VSM Jieba:分词,关键词提取 HanLP:分词,关键词提取 Spring Boot:提供API、ORM 关键实现 基于用户的协同过滤 直接调用Mahout相关接口即可 选择不同...
该资源是在Eclipse平台里,使用Mahout库的API,实现基于用户的协同过滤算法,从而进行商品推荐。 软件环境是:win7 64位 +Eclipse4.4 + jdk1.6, 用到了7个.jar包, 分别为:commons-logging-1.2.jar, commons-...
它实现的算法都被归入机器学习或者集体智慧的范畴,但是在这里Mahout主要注重协同过滤/推荐引擎、聚类和分类。 Mahout是可伸缩的。Mahout致力于实现海量数据,单机无法处理情况下的机器学习工具。在目前阶段,这种...
完全版的。Mahout 是一个开源的机器学习库,现在它主要包含的内容是协同过滤(collaborative filtering)、聚类和分类。Mahout用Java实现,并且是scalable的,和Hadoop结合紧密。
NULL 博文链接:https://snv.iteye.com/blog/2007843
maven_mahout_template-mahout-0.8
hibernate + struts + spring + bootstarp + mahout 实现功能: 后台图书管理: 图书的增删改查, 后台类目。 前台书店: 图书的分页查看, 前台类目, 多条件查询, 智能推荐, 购物车, 支付。
mahout_help,mahout的java api帮助文档,可以帮你更轻松掌握mahout
Mahout 是 Apache Software Foundation(ASF) 旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。Mahout包含许多实现,包括聚类、分类、推荐过滤...
If you are a Java developer and want to use Mahout and Machine Learning to solve Big Data analytics use-cases then this book is for you. Familiarity with shell-scripts is assumed but no prior ...
mahout-examples-0.11.1 mahout-examples-0.11.1-job mahout-h2o_2.10-0.11.1 mahout-h2o_2.10-0.11.1-dependency-reduced mahout-hdfs-0.11.1 mahout-integration-0.11.1 mahout-math-0.11.1 mahout-math-0.11.1 ...
mahout-core-0.9.jar+mahout-core-0.8.jar+mahout-core-0.1.jar
MAHOUT实战 MAHOUT IN ACTION
, 本书出自Mahout核心成员之手,得到Apache官方推荐,权威性毋庸置疑。作者凭借多年实战经验,为读者展现了丰富的应用案例,并细致地介绍了Mahout的解决之道。本书还重点讨论了可扩展性问题,介绍了如何利用Apache ...