电商大数据项目-推荐系统实战之推荐算法(三)

电商大数据项目-推荐系统实战(一)环境搭建以及日志,人口,商品分析
http://blog.51cto.com/6989066/2325073
电商大数据项目-推荐系统实战之推荐算法
http://blog.51cto.com/6989066/2326209
电商大数据项目-推荐系统实战之实时分析以及离线分析
http://blog.51cto.com/6989066/2326214

(七)推荐系统常用算法
协同过滤算法
协同过滤算法(Collaborative Filtering:CF)是很常用的一种算法,在很多电商网站上都有用到。CF算法包括基于用户的CF(User-based CF)和基于物品的CF(Item-based CF)。

(八)Apache Mahout和Spark MLLib
① Apache Mahout简介
Apache Mahout是Apache Software Foundation (ASF)旗下的一个开源项目,提供了一些经典的机器学习的算法,皆在帮助开发人员更加方便快捷地创建智能应用程序。目前已经有了三个公共发型版本,通过ApacheMahout库,Mahout可以有效地扩展到云中。Mahout包括许多实现,包括聚类、分类、推荐引擎、频繁子项挖掘。
Apache Mahout的主要目标是建立可伸缩的机器学习算法。这种可伸缩性是针对大规模的数据集而言的。Apache Mahout的算法运行在ApacheHadoop平台下,他通过Mapreduce模式实现。但是,Apache Mahout并非严格要求算法的实现基于Hadoop平台,单个节点或非Hadoop平台也可以。Apache Mahout核心库的非分布式算法也具有良好的性能。
Mahout主要包含以下5部分
?频繁挖掘模式:挖掘数据中频繁出现的项集。
?聚类:将诸如文本、文档之类的数据分成局部相关的组。
?分类:利用已经存在的分类文档训练分类器,对未分类的文档进行分类。
?推荐引擎(协同过滤):获得用户的行为并从中发现用户可能喜欢的事物。
?频繁子项挖掘:利用一个项集(查询记录或购物记录)去识别经常一起出现的项目。

② Spark MLLib简介
Spark MLlib(Machine Learnig lib) 是Spark对常用的机器学习算法的实现库,同时包括相关的测试和数据生成器。Spark的设计初衷就是为了支持一些迭代的Job, 这正好符合很多机器学习算法的特点。
Spark MLlib目前支持4种常见的机器学习问题: 分类、回归、聚类和协同过滤。Spark MLlib基于RDD,天生就可以与Spark SQL、GraphX、Spark Streaming无缝集成,以RDD为基石,4个子框架可联手构建大数据计算中心!
下图是MLlib算法库的核心内容:

九、基于用户兴趣的商品推荐
(一)基于用户的CF(User CF)和基于物品的CF(Item CF)
?基于用户的CF(User CF)
基于用户的 CF 的基本思想相当简单,基于用户对物品的偏好找到相邻邻居用户,然后将邻居用户喜欢的推荐给当前用户。计算上,就是将一个用户对所有物品的偏好作为一个向量来计算用户之间的相似度,找到 K 邻居后,根据邻居的相似度权重以及他们对物品的偏好,预测当前用户没有偏好的未涉及物品,计算得到一个排序的物品列表作为推荐。图 2 给出了一个例子,对于用户 A,根据用户的历史偏好,这里只计算得到一个邻居 - 用户 C,然后将用户 C 喜欢的物品 D 推荐给用户 A。
?基于物品的CF(Item CF)
基于物品的 CF 的原理和基于用户的 CF 类似,只是在计算邻居时采用物品本身,而不是从用户的角度,即基于用户对物品的偏好找到相似的物品,然后根据用户的历史偏好,推荐相似的物品给他。从计算的角度看,就是将所有用户对某个物品的偏好作为一个向量来计算物品之间的相似度,得到物品的相似物品后,根据用户历史的偏好预测当前用户还没有表示偏好的物品,计算得到一个排序的物品列表作为推荐。图 3 给出了一个例子,对于物品 A,根据所有用户的历史偏好,喜欢物品 A 的用户都喜欢物品 C,得出物品 A 和物品 C 比较相似,而用户 C 喜欢物品 A,那么可以推断出用户 C 可能也喜欢物品 C。

十、基于ALS协同过滤推荐
一)ALS的基本原理

(二)基于Spark MLLib的ALS

基本的过程是:
a.加载数据到rating RDD中
b.使用rating RDD训练ALS模型
c.使用ALS模型为用户进行物品推荐,将结果打印
d.评估模型的均方差

(三)基于Apache Mahout的ALS
1.将rating分为预测集(10%)和训练集(90%)
bin/mahout splitDataset -i /input/ratingdata.txt -o /output/ALS/dataset

2.使用并行ALS算法,对训练集来矩阵进行分解,之后会在/output/ALS/out生成两个矩阵U(用户特征矩阵)和M(物品特征矩阵),以及评分
bin/mahout parallelALS -i /output/ALS/dataset/trainingSet/ -o /output/ALS/out --numFeatures 20 --numIterations 5 --lambda 0.1

3.通过预测集来对模型进行评价,评价标准是RMSE。RMSE结果会输出在/output/ALS/rmse/rmse.txt
bin/mahout evaluateFactorization -i /output/ALS/dataset/probeSet/ -o /output/ALS/rmse --userFeatures /output/ALS/out/U --itemFeatures output/ALS/out/M
4.最后进行推荐
bin/mahout recommendfactorized -i /output/ALS/out/userRatings -o /output/ALS/recommendations --userFeatures /output/ALS/out/U --itemFeatures output/ALS/out/M --numRecommendations 6 --maxRating 5

原文地址:http://blog.51cto.com/6989066/2326209

时间: 2024-10-19 03:30:01

电商大数据项目-推荐系统实战之推荐算法(三)的相关文章

电商大数据项目-推荐系统实战

开源项目,请勿用于任何商业用途.源代码地址:https://github.com/asdud/Bigdata_project 本项目是基于Spark MLLib的大数据电商推荐系统项目,使用了scala语言和java语言.基于python语言的推荐系统项目会另外写一篇博客.在阅读本博客以前,需要有以下基础:1.linux的基本命令2.至少有高中及以上的数学基础.3.至少有java se基础,会scala语言和Java EE更佳(Jave EE非必需,但是可以帮助你更快理解项目的架构).4.有gi

电商大数据项目(二)-推荐系统实战之实时分析以及离线分析

电商大数据项目-推荐系统实战(一)环境搭建以及日志,人口,商品分析http://blog.51cto.com/6989066/2325073电商大数据项目-推荐系统实战之推荐算法http://blog.51cto.com/6989066/2326209电商大数据项目-推荐系统实战之实时分析以及离线分析http://blog.51cto.com/6989066/2326214 五.实时分析Top IP(实时分析Top用户)一)模块介绍电商网站运营中,需要分析网站访问排名前N的IP,主要用来审计是否

下载基于大数据技术推荐系统实战教程(Spark ML Spark Streaming Kafka Hadoop Mahout Flume Sqoop Redis)

地址:http://pan.baidu.com/s/1c2tOtwc  密码:yn2r 82课高清完整版,转一播放码. 互联网行业是大数据应用最前沿的阵地,目前主流的大数据技术,包括 hadoop,spark等,全部来自于一线互联网公司.从应用角度讲,大数据在互联网领域主要有三类应用:搜索引擎(比如百度,谷歌等),广告系统(比如百度凤巢,阿里妈妈等)和推荐系统(比如阿里巴巴天猫推荐,优酷视频推荐等). 本次培训以商业实战项目作为驱动来学习大数据技术在推荐系统项目中的应用.使得学员能够亲身体会大数

电商大数据应用之用户画像

一.?课程目标1.1 了解用户画像是什么1.2 用户画像的作用是什么1.3 学会使用SparkSQL构建用户画像二.?前言 大数据时代已经到来,企业迫切希望从已经积累的数据中分析出有价值的东西,而用户行为的分析尤为重要.利用大数据来分析用户的行为与消费习惯,可以预测商品的发展的趋势,提高产品质量,同时提高用户满意度.本课程是基于大型电商公司的真实用户画像中提练出的精华内容,旨在培养学员了解用户画像的内容,掌握构建用户画像的方法. 三.?初识用户画像 右边是一个人的基本属性,通过一个人的基本属性我

电商大数据平台运维案例

技术栈 数据流向 平台规模差异化,隔离化 YARN: https://baike.baidu.com/item/yarn/16075826?fr=aladdin 今天先到这儿,希望对您在系统架构设计与评估,团队管理, 项目管理, 产品管理,团队建设 有参考作用 , 您可能感兴趣的文章: 互联网电商购物车架构演变案例互联网业务场景下消息队列架构互联网高效研发团队管理演进之一消息系统架构设计演进互联网电商搜索架构演化之一企业信息化与软件工程的迷思企业项目化管理介绍软件项目成功之要素人际沟通风格介绍一

电商大数据学习笔记:理论

1.大数据部门:数据中心.数据平台.数据部…… 2.每个部门都有:架构人员.数据分析人员.开发人员.运营人员…… 3.团队:数据仓库组.BI组.架构组.数据专家组…… 4.团队分的更细:需求组.推荐组.情报组.挖掘组.数据组.营销组…… 5.大数据有哪些重要的项目: 1)数据仓库建设: 2)经营分析报表: 3)客户精准营销: 4)推荐系统: 5)移动端数据分析. 6.大数据有哪些重点方向: 1)流量数据: 2)交易数据: 3)会员与活动数据: 4)物流与配送数据: 5)内部财务数据. 7.代表产

电商大数据学习笔记:实战

1.YARN:将资源管理和作业调度/监控分成两个独立的进程. 包含两个组件:ResourceManager和ApplicationMaster 2.YARN的特性: 1)可扩展性:2)高可用性(HA):3)兼容性(1.0版本的作业也可以执行):4)提高集群利用率: 5)支持MapReduce编程范式. 3.Hadoop的进程: 1)NameNode HDFS的守护进程: 2)Secondary NameNode 监控HDFS状态的辅助后台程序,备用NameNode: 3)DataNode 负责把

电商大数据学习笔记:用户画像

1.用户画像:用户信息标签化. 2.用户画像可以做什么? ——内容正在整理中 3.show命令用法 show tables 显示所有表 例:show table like ‘…_pre_food’; show partitions 显示所有分区 例:show partitions fdm_prd_food partition(dt=’2015-01-01’); show table extended 显示扩展信息 例:show table extended like fdm_ord_order;

大数据-实时推荐系统最主流推荐系统itemCF和userCF视频教程(项目实战)

38套大数据,云计算,架构,数据分析师,Hadoop,Spark,Storm,Kafka,人工智能,机器学习,深度学习,项目实战视频教程 视频课程包含: 38套大数据和人工智能精品高级课包含:大数据,云计算,架构,数据挖掘实战,实时推荐系统实战,电视收视率项目实战,实时流统计项目实战,离线电商分析项目实战,Spark大型项目实战用户分析,智能客户系统项目实战,Linux基础,Hadoop,Spark,Storm,Docker,Mapreduce,Kafka,Flume,OpenStack,Hiv