MavenMahout使用手册PPT文档格式.ppt
- 文档编号:14299219
- 上传时间:2022-10-21
- 格式:PPT
- 页数:36
- 大小:1.23MB
MavenMahout使用手册PPT文档格式.ppt
《MavenMahout使用手册PPT文档格式.ppt》由会员分享,可在线阅读,更多相关《MavenMahout使用手册PPT文档格式.ppt(36页珍藏版)》请在冰豆网上搜索。
算法集Maven是一套基于Java语言的项目管理工具,Hadoop和Mahout的源代码就是基于此框架,简单讲就是一套管理和存放文件的规则。
源代码项目管理工具,Mahout,Hadoop,Maven,算法支持,文件系统,源代码项目规范,Hadoop、Mahout、Maven关系模型,2、进度和计划,本次汇报主要展示本月已完成工作:
Maven项目管理工具的介绍和具体功能示例Mahout算法集介绍和协同过滤算法使用以及源代码探究Mahout算法拓展与打包下个月计划进度如下:
根据实际应用数据进行代码的测试分析和优化推荐系统的算法和程序,02,Maven介绍以及使用,1、Maven是什么,Maven是一个项目构建和管理的工具。
可以方便的编译代码、进行依赖管理、管理二进制库等等。
Maven的好处在于可以将项目过程规范化、自动化、高效化以及强大的可扩展性,利用Maven自身及其插件还可以获得代码检查报告、单元测试覆盖率、实现持续集成等等。
简单来讲,Maven就是一个项目管理工具。
它能实现项目配置、引用、测试、运行、打包等功能的自动化和标准化。
Hadoop和Mahout的项目源代码都由Maven来管理,Maven还管理其他很多开源项目例如Struts、Hibernate等。
2、maven的核心概念介绍,2.1Pompom是指projectobjectModel,pom是一个xml。
pom.xml是Maven工作的基础。
pom.xml文件中包含了项目的信息和Maven项目所需的配置信息,通常有项目信息(如版本、成员)、项目的依赖、插件和goal、build选项等等。
pom.xml示例,项目主要信息groupId:
项目或者组织的唯一标志artifactId:
项目的通用名称version:
项目的版本packaging:
打包机制,如pom,jar,maven-plugin,ejb,war,ear,rar,par其中groupId,artifactId,version三项就可以组成项目的唯一坐标。
外部依赖信息包含的是项目的外部依赖信息,Maven会根据这里的信息自动为项目配置好所需要的外部依赖。
插件信息包含的是项目的插件配置信息。
2.2Artifact每个个Maven项目都有一个唯一的ArtifactID,由groupId:
artifactId:
version唯一标识。
Maven中的外部依赖和插件也是通过Artifact来配置和使用的。
需要被使用的artifact(依赖)都会存放在本地仓库(见Repository)中。
2.3仓库(Repositories)仓库分为本地仓库和远程仓库,远程仓库是指远程服务器上用于存储Artifact的仓库,本地仓库是指本机存储Artifact的仓库,默认本地仓库地址为系统用户的.m2/repository下面。
仓库是用来存储Artifact的。
如果说我们的项目产生的Artifact是一个个小工具,那么Repositories就是一个仓库,里面有我们自己创建的工具,也可以储存别人造的工具,我们在项目中需要使用某种工具时,在pom中声明dependency,就会为工程自动引用。
如果本地仓库没有Artifact,就会从远程仓库搜索并下载到本地仓库。
对于需要的依赖,在pom中添加dependency即可,可以在maven在线库中搜索:
http:
/,3、Maven项目示例,3.1Eclipse使用Maven需要安装配置如下工具:
jdk:
java编程环境Eclipse:
IDE编程平台Maven软件包m2eclipse:
Eclipse平台使用Maven的插件,3.2Eclipse中创建一个Maven工程,在Eclipse中点击file-new-project-mavenproject;
在SelectanArchetype阶段选择maven-archetype-quickstart;
然后填写好artifactId,选择版本等,创建出新的Maven工程,3.3Maven项目结构,03,Mahout介绍及协同过滤算法,1、Mahout介绍,Mahout是ApacheSoftwareFoundation(ASF)旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。
Mahout包含许多实现,包括聚类、分类、推荐过滤、频繁子项挖掘。
此外,通过使用ApacheHadoop库,Mahout可以有效地扩展到云中。
2、Mahout的使用和学习,Mahout如今已经发布到0.10版本,每个版本都有Mahout-distribution-version和Mahout-distribution-version-src两个类型的发布文件。
Mahout-distribution-version:
由可导入的算法集jar包组成,面向于直接应用。
Mahout-distribution-version-src:
Maven工具管理维护的源代码,面向于研究和拓展算法。
下面以协同过滤算法为例,具体介绍下Mahout的使用和学习。
3、协同过滤算法的使用,3.1导入包并配置路径,1)创建一个Java项目2)在mahout官网下载mahout-distribution-0.9.zip3)在Java项目根目录下建立名为lib的文件夹,将下图中mahout文件各包复制到lib文件夹内。
4)刷新工程,选中lib文件夹所有包,右键,选择BuildPath-addtoBuildPath。
4)在程序中引入如下包,importmon.TasteException;
importmon.LongPrimitiveIterator;
importorg.apache.mahout.cf.taste.impl.model.file.FileDataModel;
importorg.apache.mahout.cf.taste.impl.neighborhood.NearestNUserNeighborhood;
importorg.apache.mahout.cf.taste.impl.recommender.GenericUserBasedRecommender;
importorg.apache.mahout.cf.taste.impl.similarity.PearsonCorrelationSimilarity;
importorg.apache.mahout.cf.taste.model.DataModel;
importorg.apache.mahout.cf.taste.neighborhood.UserNeighborhood;
importorg.apache.mahout.cf.taste.recommender.RecommendedItem;
importorg.apache.mahout.cf.taste.recommender.Recommender;
importorg.apache.mahout.cf.taste.similarity.UserSimilarity;
3.2UserBasedCF算法关键代码,/结构化输入DataModelmodel=newFileDataModel(newFile(E:
RATEoutputdataScore.txt);
/计算相似性UserSimilaritysim=newPearsonCorrelationSimilarity(model);
/计算用户相似邻居UserNeighborhoodnbh=newNearestNUserNeighborhood(4,sim,model);
/获得所有用户LongPrimitiveIteratorlist=model.getUserIDs();
/生成推荐引擎Recommenderrec=newGenericUserBasedRecommender(model,nbh,sim);
/为第一个用户推荐4个物品ListrecItemList=rec.recommend(list.next(),10);
3.3推荐结果示例,4、协同过滤算法源代码研究,4.1引入Mahout源代码工程,1)在mahout官网下载mahout-distribution-0.9-src.zip2)将其解压在硬盘上3)Eclipse-File-Import,然后选择Maven-ExitingMavenProjects-Next,4)RootDirectory处单击Browse,选择mahout源代码根目录,5)将所有选项勾选,点击Finish,等待Eclipse下载所需的jar包。
4.2导入结果,如图,已成功将Mahout源代码导入到Eclipse中,即可作为本地的Maven工程进行查看、修改、编译等工作。
4.3协同过滤源代码1)推荐算法源代码:
Mahout的推荐引擎算法源代码,可以在Mahout-core工程下的org.apache.mahout.cf.taste包中找到。
2)主要包说明:
common:
公共类包括,异常,数据刷新接口,权重常量model:
定义数据模型接口neighborhood:
定义近邻算法的接口recommender:
定义推荐算法的接口similarity:
定义相似度算法的接口hadoop:
基于hadoop的分步式算法的实现类impl:
单机内存算法实现类从上面的package情况,我可以粗略地看出推荐引擎分为4个主要部分组成:
数据模型,相似度算法,近邻算法,推荐算法。
从数据处理能力上,算法可以分为:
单机内存算法,基于hadoop的分步式算法。
04,工程封装打包,1、打包流程,1.1在mahout-core/src/main/java中新建一个包,在其中开发自定义拓展类。
1.2配置Maven打包插件打开工程下的pom.xml文件。
配置maven-jar-plugin打包特定文件或排除特定文件的配置方式如下:
1.3打包命令右键点击pom.xml文件,runas-mavenbuild.-goal:
package,1.4查看结果,运行成功后在程序文件夹下的target文件夹下会出现打包好的jar文件。
2、打包意义,将开发拓展的算法打包有以下几个重要意义:
有效保护算法的开发成果。
简化使用方式,方便后续开发。
有助于形成标准化体系结构。
结束谢谢观看,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MavenMahout 使用手册