星辰的英文译语怎么说-识字教学
2023年4月1日发(作者:三年级下册英语教案)
Mahout介绍和简单应⽤
Mahout学习(主要学习内容是Mahout中推荐部分的ItemCF、UserCF、Hadoop集群部署运
⾏)
1、Mahout是什么?
Mahout是⼀个算法库,集成了很多算法。
ApacheMahout是ApacheSoftwareFoundation(ASF)旗下的⼀个开源项⽬,提供⼀些可扩展的机器学习领域经典算法的实现,旨
在帮助开发⼈员更加⽅便快捷地创建智能应⽤程序。
Mahout项⽬⽬前已经有了多个公共发⾏版本。Mahout包含许多实现,包括聚类、分类、推荐过滤、频繁⼦项挖掘。
通过使⽤ApacheHadoop库,Mahout可以有效地扩展到Hadoop集群。
Mahout的创始⼈GrantIngersoll介绍了机器学习的基本概念,并演⽰了如何使⽤Mahout来实现⽂档集群、提出建议和组织内容。
2、Mahout是⽤来⼲嘛的?
2.1推荐引擎
服务商或⽹站会根据你过去的⾏为为你推荐书籍、电影或⽂章。
2.2聚类
Googlenews使⽤聚类技术通过标题把新闻⽂章进⾏分组,从⽽按照逻辑线索来显⽰新闻,⽽并⾮给出所有新闻的原始列表。
2.3分类
雅虎邮箱基望洞庭唐刘禹锡的古诗 于⽤户以前对正常邮件和垃圾邮件的报告,以及电⼦邮件⾃⾝的特征,来判别到来的消息是否是垃圾邮件。
3、Mahout协同过滤算法
Mahout使⽤了Taste来提⾼协同过滤算法的实现,它是⼀个基于Java实现的可扩展的,⾼效的推荐引擎。Taste既实现了最基本的基于⽤户
的和基于内容的推荐算法,同时也提供了扩展接⼝,使⽤户可以⽅便的定义和实现⾃⼰的推荐算法。同时,Taste不仅仅只适⽤于Java应⽤
程序,它可以作为内部服务器的⼀个组件以HTTP和WebService的形式向外界提供推荐的逻辑。Taste的设计使它能满⾜企业对推荐引擎在
性能、灵活性和可扩展性等⽅⾯的要求。
Taste主要包括以下⼏个接⼝:
DataModel是⽤户喜好信息的抽象接⼝,它的具体实现⽀持从任意类型的数据源抽取⽤户喜好信息。Taste默认提供JDBCDataModel
和FileDataModel,分别⽀持从数据库和⽂件中读取⽤户的喜好信息。
UserSimilarity和ItemSimilarity。UserSimilarity⽤于定义两个⽤户间的相似度,它是基于协同过滤的推荐引擎的核⼼部分,可以⽤来
计算⽤户的“邻居”,这⾥我们将与当前⽤户⼝味相似的⽤户称为他的邻居。ItemSimilarity类似的,计算Item之间的相似度。
UserNeighborhood⽤于基于⽤户相似度的推荐⽅法中,推荐的内容是基于找到与当前⽤户喜好相似的邻居⽤户的⽅式产⽣
的。UserNeighborhood定义了确定邻居⽤户的⽅法,具体实现⼀般是基于UserSimilarity计算得到的。
Recommender是推荐引擎的抽象接⼝,Taste中的核⼼组件。程序中,为它提供⼀个DataModel,它可以计算出对不同⽤户的推荐内
容。实际应⽤中,主要使⽤它的实现类GenericUserBasedRecommender或者GenericItemBasedRecommender《木兰诗》正确朗读 ,分别实现基于⽤户
相似度的推荐引擎或者基于内容的推荐引擎。
RecommenderEvaluator:评分器。
Recomm赞美春天的诗句大全 enderIRStatsEvaluator:搜集推荐性能相关的指标,包括准确率、召回率等等。
4、Mahout协同过滤算法编程
1、创建maven项⽬
2、导⼊mahout依赖
3、下载电影评分数据
数据类别:7.2万⽤户对1万部电影的百万级评价和10万个标签数据
4、基于⽤户的推荐
ahout;
2
tNUserNeighborhood;
cUserBasedRecommender;
nCorrelationSimilarity;
del;
ighborhood;
endedItem;
ender;
milarity;
ensDataModel;
12
;
;
15
16/**
17*Createdbyahu_lichangon2017/6/23.
18*/
19publicclassBaseUserRecommender{
20publicstaticvoidmain(String[]args)throwsException{
21//准备数据这⾥是电影评分数据
22Filefile=newFile(\"E:\");
23//将数据加载到内存中,GroupLensDataModel是针对开放电影评论数据的
24DataModeldataModel=newGroupLensDataModel(file);
25//计算相似度,相似度算法有很多种,欧⼏⾥得、⽪尔逊等等。
26UserSimilaritysimilarity=newPearsonCorrelationSimilarity(dataModel);
27//计算最近邻域,邻居有两种算法,基于固定数量的邻居和基于相似度的邻居,这⾥使⽤基于固定数量的邻居
28UserNeighborhooduserNeighborhood=newNearestNUserNeighborhood(100,similarity,dataModel);
29//构建推荐器,协同过滤推荐有两种,分别是基于⽤户的和基于物品的,这⾥使⽤基于⽤户的协同过滤推荐
30Recommenderrec纳兰容若经典诗词爱情 ommender=newGenericUserBasedRecommender(dataModel,u检测的近义词 serNeighborhood,similarity);
31//给⽤户ID等于5的⽤户推荐10部电影
32List
33//打印推荐的结果
n(\"使⽤基于⽤户的协同过滤算法\");
n(\"为⽤户5推荐10个商品\");
36for(RecommendedItemrecommendedItem:recommendedItemList){
n(recommendedItem);
38}
39}
40}
运⾏结果:
5、基于物品的推荐
ahout;
cItemBasedRecommender;
nCorrelationSimilarity;
del;
endedItem;
milarity;
ensDataModel;
;
;
/**
*Createdbyahu_lichangon2017/6/24.
*/
publicclassBaseItemRecommender{
publicstaticvoidmain(String[]args)throwsException{
//准备数据这⾥是电影评分数据
Filefile=newFile(\"E:\");
//将数据加载到内存中,GroupLensDataModel是针对开放电影评论数据的
DataModeldataModel=newGroupLensDataModel(file);
//计算相似度,相似度算法有很多种,欧⼏⾥得、⽪尔逊等等。
ItemSimilarityitemSimilarity=newPearsonCorrelationSimilarity(dataModel);
//构建推荐器,协同过滤推荐有两种,分别是基于⽤户的和基于物品的,这假如我是一坨屎作文 ⾥使⽤基于物品的协同过滤推荐
GenericItemBasedRecommenderrecommender=newGenericItemBasedRecommender(dataModel,itemSimilarity);
//给⽤户ID等于5的⽤户推荐10个与2398相似的商品
List
//打印推荐的结果
n(\"使⽤基于物品的协同过滤算逸的拼音 法\");
n(\"根据⽤户5当前浏览的商品2398,推荐10个相似的商品\");
for(RecommendedItemrecommendedItem:recommendedItemList){
n(recommendedItem);
}
longstart=tTimeMillis();
recommendedItemList=endedBecause(5,34,10);
//打印推荐的结果
n(\"使⽤基于物品的协同过滤算法\");
n(\"根据⽤户5当前浏览的商品34,推荐10个相似的商品\");
for(RecommendedItemrecommendedItem:recommendedItemList){
n(recommendedItem);
}
n(tTimeMillis()-start);
}
}
运⾏结果:
6、评估推荐模型
ahout;
xception;
enderBuilder;
enderEvaluator;
eAbsoluteDifferenceRecommenderEvaluator;
tNUserNeighborhood;
cUserBasedRecommender;
nCorrelationSimilarity;
del;
ighborhood;
ender;
milarity;
ensDataModel;
;
/**
*Createdbyahu_lichangon2017/6/24.
*/
publicclassMyEvaluator{
publicstaticvoidmain(String[]args)throwsException{
//准备数据这⾥是电影评分数据
Filefile=newFile(\"E:\");
//将数据加载到内存中,GroupLensDataModel是针对开放电影评论数据的
DataModeldataModel=newGroupLensDataModel(file);
//推荐评估,使⽤均⽅根
//RecommenderEvaluatorevaluator=newRMSRecommenderEvaluator();
//推荐评估,使⽤平均差值
RecommenderEvaluatorevaluator=newAverageAbsoluteDifferenceRecommenderEvaluator();
RecommenderBuilderbuilder=newRecommenderBuilder(){
publicRecommenderbuildRecommender(DataModeldataModel)throwsTasteException{
UserSimilaritysimilarity=newPearsonCorrelationSimilarity(dataModel);
UserNeighborhoodneighborhood=newNearestNUserNeighborhood(2,similarity,dataModel);
returnnewGenericUserBasedRecommender(dataModel,neighborhood,similarity);
}
};
//⽤70%的数据⽤作训练,剩下的30%⽤来测试
doublescore=te(builder,null,dataModel,0.7,1.0);
//最后得出的评估值越⼩,说明推荐结果越好
n(score);
}
}
7、获取推荐的准确率和召回率
ahout;
xception;
istics;
enderBuilder;
enderIRStatsEvaluator;
cRecommenderIRStatsEvaluator;
tNUserNeighborhood;
cUserBasedRecommender;
nCorrelationSimilarity;
del;
ighborhood;
ender;
milarity;
ensDataModel;
;
/**
*Createdbyahu_lichangon2017/6/24.
*/
publicclassMyIRStatistics{
publicstaticvoidmain(String[]args)throwsException{
//准备数据这⾥是电影评分数据
Filefile=newFile(\"E:\");
//将数据加载到内存中,GroupLensDataModel是针对开放电影评论数据的
DataModeldataModel=newGroupLensDataModel(file);
RecommenderIRStatsEvaluatorstatsEvaluator=newGenericRecommenderIRStatsEvaluator();
RecommenderBuilderrecommenderBuilder=newRecommenderBuilder(){
publicRecommenderbuildRecommender(DataModelmodel)throwsTasteException{
UserSimilaritysimilarity=newPearsonCorrelationSimilarity(model);
UserNeighborhoodneighborhood=newNearestNUserNeighborhood(4,similarity,model);
returnnewGenericUserBasedRecommender(model,neighborhood,similarity);
}
};
//计算推荐4个结果时的查准率和召回率
//使⽤评估器,并设定评估期的参数
//4表⽰\"precisionandrecallat4\"即相当于推荐top4,然后在top-4的推荐上计算准确率和召回率
IRStatisticsstats=te(recommenderBuilder,null,dataModel,null,4,_THRESHOLD,1.0);
n(cision());
n(all());
}
}
5、Mahout运⾏在Hadoop集群
1、Hadoop执⾏脚本
enderJob--input/sanbox/movie/--output
/sanbox/movie/r-sSIMILARITY_LOGLIKELIHOOD
参数说明
--input(path):存储⽤户偏好数据的⽬录,该⽬录下可以包含⼀个或多个存储⽤户偏好数据的⽂本⽂件;
--output(path):结算结果的输出⽬录
--numRecommendations(integer):为每个⽤户推荐的item数量,默认为10
--usersFile(path):指定⼀个包含了⼀个或多个存储userID的⽂件路径,仅为该路径下所有⽂件包含的userID做推荐计算(该选项可选)
--itemsFile(path):指定⼀个包含了⼀个或多个存储itemID的⽂件路径,仅为该路径下所有⽂件包含的itemID做推荐计算(该选项可选)
--filterFile(path):指定⼀个路径,该路径下的⽂件包含了[userID,itemID]值对,userID和itemID⽤逗号分隔。计算结果将不会为user推
荐[userID,itemID]值对中包含的item(该选项可选)
--booleanData(boolean):如果输⼊数据不包含偏好数值,则将该参数设置为true,默认为false
--maxPrefsPerUser(integer):在最后计算推荐结果的阶段,针对每⼀个user使⽤的偏好数据的最⼤数量,默认为10
--minPrefsPerUser(integer):在相似度计算中,忽略所有偏好数据量少于该值的⽤户,默认为1
--maxSimilaritiesPerItem(integer):针对每个item的相似度最⼤值,默认为100
--maxPrefsPerUserInItemSimilarity(integer):在item相似度计算阶段,针对每个⽤户考虑的偏好数据最⼤数量,默认为1000
--similarityClassname(classname):向量相似度计算类
outputPathForSimilarityMatrix:SimilarityMatrix输出⽬录
--randomSeed:随机种⼦--sequencefileOutput:序列⽂件输出路径
--tempDir(path):存储临时⽂件的⽬录,默认为当前⽤户的home⽬录下的temp⽬录
--threshold(double):忽略相似度低于该阀值的item对
2、执⾏结果
上⾯命令运⾏完成之后,会在当前⽤户的hdfs主⽬录⽣成temp⽬录,该⽬录可由--tempDir(path)参数设置.
后期学习补充:
Mahout是基于Hadoop的机器学习和数据挖掘的⼀个分布式框架。Mahout⽤MapReduce实现了部分数据挖掘算法,解决了并⾏挖掘的问
题。
Mahout应⽤场景:
更多推荐
mahout是什么意思out在线翻译读音例句
发布评论