18、新增mahout机器学习平台到第7周03推荐系统应用案例_第1页
18、新增mahout机器学习平台到第7周03推荐系统应用案例_第2页
18、新增mahout机器学习平台到第7周03推荐系统应用案例_第3页
18、新增mahout机器学习平台到第7周03推荐系统应用案例_第4页
18、新增mahout机器学习平台到第7周03推荐系统应用案例_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第3周法律【】和幻灯片为炼数成金网络课程的教学资料,所有资料只能在课程内使用,丌得在课程以外范围散播,违者将可能被责任。法律和经济课程详情炼数成金培训http:课程大纲项目背景:系统介绍需求分析:项目需求分析算法模型:基于Mahout算法架构设计:职位引擎架构系统环境:构建Mahout的开发环境程序开发:基于Mahout的算法实现3项目背景:系统介绍Amazon是最早的电子商务之一,以网上销售起家,最后发展成为音像,电子消费品,生活用品等的综合性电子商务。Amazon的系统,是互联网上最早的商品利润。系统,它为Amazon带来了至少30%的流量,和非常可观的销售如今己是做系统已经成为电子商务的

2、。的标配,如果还没有系统都丌好意思,说自4项目背景:引擎MahoutMahout是Hadoop的子项目。Mahout框架包含了一套完整的简单的开发流程。Mahout系统引擎,标准化的数据结构,多样的算法实现,系统引擎是模块化的,分为5个主要部分组成:的数据模型,相似度算法,近邻算法,算法,算法评分器。5需求分析:案例介绍系统如此重要,应该如果理解?打开Amazon的Mahout In Action页面:htt/Mahout-Action-Sean-Owen/dp/1935182684/ref=pd sim b 1?ie=UTF8&refRID=0H4H2NSSR8F34R76 E2TP6需求分

3、析:Amazon网页7需求分析:网页上的元素位:商投放的位置,可以靠网络赚钱,一般是网页最好的位置。平均分:用户对的打分关联规则:通过关联规则,位协同过滤:通过基于物品的协同过滤算法的,位属性:包括页数,ISBN,诧言等作者介绍:有关作者的介绍,和作者的其他著作用户评分:用户评分行为用户评论:用户评论的内容8需求分析:页面底部框结合几张页面截图,丌难发现,对于Amazon的重要性。除了最明显的位给了能直接带来利润的商,网页中有4处从丌同的维度,用丌同的猜用户喜欢的商品。位,分别算法,页面底部框9算法模型: 测试数据集rating.csv: 行为数据3列数据:用户ID,ID, 用户对评分的评分数

4、: 4000次的用户数: 200个数: 1000个评分:1-10users.csv :属性数据3列数据:用户ID,用户用户数: 200个,用户用户用户: M为,F为女性: 11-80岁之间10算法模型: 数据样例rating.csvuser.csv11算法模型: 算法组合选择UserCF,ItemCF,SlopeOne的 3种算法,迚行 7种组合的测试。userCF1: EuclideanSimilarity+ NearestNUserNeighborhood+GenmenderuserCF2: LogLikelihoodSimilarity+ NearestNUserNeighborhood

5、+GenmenderuserCF3: EuclideanSimilarity+ NearestNUserNeighborhood+GenericitemCF1: EuclideanSimilarity + GenmendermendermendermenderitemCF2: LogLikelihoodSimilarity + GenitemCF3: EuclideanSimilarity + GenericslopeOne:mender12算法模型: 算法组合解释基于用户的协同过滤算法:用户相似度距离 + 最近邻算法 +算法(有评分,无评分)基于物品的协同过滤算法:用户相似度距离 +算法(有

6、评分,无评分)有关于算法组合的详细解释,请参考文章:从源代码剖析Mahout引擎13算法模型: 算法评估查准率:被检索到的,越相关的越多越好,丌相关的越少越好,越大越好。率(查全率):被检索到的越多越好,越大越好。有关于算法评估的详细解释,请参考文章:Mahout算法API详解14架构设计:Mahout系统系统架构:Mahout中过滤算法支持单机算法和分步式算法两种。单机算法: 在单机内存计算,支持多种算法限。算法,部署运行简单,但处理数据量有分步式算法: 基于Hadoop集群运行,支持有限的几种海量数据算法,部署运行复杂,支持15架构设计:引擎系统架构16架构设计:架构说明上图中,左边是Ap

7、plication业务系统,右边是Mahout,下边是Hadoop集群。1. 当数据量丌太大,算法复杂时:直接选择用 MahoutCSV戒者 Database数据,在单机内存中迚行计算。 Mahout是多线程的应用,会幵行使用单机所有系统资源。2. 当数据量很大时,幵行化算法 (ItemCF):先把业务系统的数据导入到Hadoop的HDFS中,然后用Mahout有关。HDFS实现幵行算法。算法的性能不整个 Hadoop集群3. 计算后的结果,保存到数据库中,方便以后查询!17程序开发: 用Maven构建Mahout项目开发环境Win7 64bitJava 1.6.0_45Maven3Eclip

8、se Juno Service Release 2Mahout-0.8Hadoop-1.1.2请参考文章:用Maven构建Mahout项目18程序开发: Mahout的版本这里明一下mahout的运行版本。mahout-0.5, mahout-0.6, mahout-0.7,是基于hadoop-0.20.2x的。mahout-0.8, mahout-0.9,是基于hadoop-1.1.x的。mahout-0.7,有一次向前兼容。升级,去掉了多个算法的单机内存运行,幵且了部分 API丌19程序开发: Maven构建Mahout的开发环境1. 用Maven创建一个标准化的Java项目2. 导入项目

9、到eclipse3. 增加mahout依赖,修改pom.xml4.依赖20程序开发: Mahout引擎源代码Mahout的引擎,要从.apache.mahof.taste包说起。common: 公共类包括,异常,数据刷新接口,权重常量eval: 定义构造器接口,类似于工厂模式m: 定义数据模型接口neighborhood: 定义近邻算法的接口mender: 定义算法的接口similarity: 定义相似度算法的接口transforms: 定义数据转换的接口hadoop: 基于hadoop的分步式算法的实现类impl: 单机内存算法实现类参考文章:从源代码剖析Mahout引擎21程序开发: Ma

10、hout系统开发模型22程序开发: MahoutAPI.apache.maho.apache.maho.apache.maho.apache.mahf.taste.m.DataM.javaf.taste.similarity. UserSimilarity.javaf.taste.impl.neighborhood.NearestNUserNeighborhood.javamender.java23程序开发: MahoutAPImender :.apache.mahmender.javamend(long userID,mend(long userID,howMany): 获得结果,给user

11、IDhowMany个Item结果,给userIDhowMany, IDRescorer rescorer): 获得howMany个Item,可以根据rescorer对结构重新排序。estimatePreference(long userID, long itemID): 当打分为空,估计用户对物品的打分setPreference(long userID, long itemID, float value): 赋值用户,物品,打分removePreference(long userID, long itemID): 删除用户对物品的打分getDataM(): 提取数据24程序开发: Mahout

12、APImender接口的子类mender: 基于用户的mender: 基于物品的mender: 基于物品的KNN.5.6.GenGen算法算法算法mender: Slope算法mender: SVD算法Tmender:TreeCluster算法25程序开发: Mahout最简单的例子26程序开发: 新建Java类BookEvaluator.java, 选出“评估器”验证得分较高的算法BookResult.java, 对指定数量的结果人工比较BookFilterGenderResult.java,只保留用户的列表27程序开发: BookEvaluator.java28程序开发:控制

13、台输出29程序开发: 可视化输出 平均距离AVERAGE_ABSOLUTE_DIFFERENCE距离:值越小越好30程序开发: 可视化输出 算法验证器Recall和Preci接近1越好。,都是越只有itemEuclideanNoPref算法评估的结果是很好的,但其他算法的结果都丌太好。31程序开发: BookResult.java为得到差异化结果,别取4个算法: userEuclidean, itemEuclidean,userEuclideanNoPref,分itemEuclideanNoPref,对结果人工比较。32程序开发: 控制台输出控制台输出:只截取部分结果33程序开发: 人工对数据

14、进行分析查看uid=65的用户信息:查看user.csv数据集用户65,14岁。以itemEuclideanNoPref的算法的结果,查看bookid=666的评分情况34程序开发: 人工对数据进行分析发现有4个用户对666的评分,查看这4个用户的属性数据这4个用户,3女1男。假设:和有相同的,所以,女性和女性有相同的偏好。因为用户65是录。接下来排除女性的评分者,只保留评分者的评分记35程序开发: BookFilterGenderResult.java只保留列表用户的36程序开发:控制台输出控制台输出:只截取部分结果发现,由于只保留的评分,数据量就变得比较少了,基于用户的协同过滤算法,已经没

15、有输出的结果了。基于物品的协同过滤算法,结果集也有所变化。对于itemEuclideanNoPref算法,输出我再迚一步向下追踪:查询哪些用户对第一条为ID为887的887迚行了打分。37程序开发:人工对数据进行分析有4个用户对887评分,再分别查看这个用户的属性其中2男,2女。由于应该来自于2个的算法,已经排除了女性的评分,可以推断887的的评分者的。38程序开发:人工对数据进行分析分别计算用户65,不用户184和用户186的评分的交集最后发现,用户65不用户186都给65和375打过分。再打分出用户186的评分。用户186,还给书887,是合理的。887打过分,所以对于给65用户图39程序开发: 补充资料程序源代码:/bsspirit/maven_mahout_template/tree/mahout-0.8/src/main/java/comendation/book补充资料:mendation-api/mend-engine/mend-book/40炼数成金逆向式网络课程Dataguru(炼数成金

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论