星辰的英文译语怎么说-识字教学


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依赖

mahout

0.11.1

mahout-examples

0.11.1

4j

slf4j-log4j12

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部电影

32ListrecommendedItemList=end(5,10);

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相似的商品

ListrecommendedItemList=endedBecause(5,2398,10);

//打印推荐的结果

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在线翻译读音例句