Spark MLlib之协同过滤】的更多相关文章

原文:http://blog.selfup.cn/1001.html 什么是协同过滤 协同过滤(Collaborative Filtering, 简称CF),wiki上的定义是:简单来说是利用某兴趣相投.拥有共同经验之群体的喜好来推荐使用者感兴趣的资讯,个人透过合作的机制给予资讯相当程度的回应(如评分)并记录下来以达到过滤的目的进而帮助别人筛选资讯,回应不一定局限于特别感兴趣的,特别不感兴趣资讯的纪录也相当重要. 以上定义太拗口,举个简单的例子:我现在多年不看日本anime的新番了,最近突然又想…
Spark机器学习之协同过滤算法 一).协同过滤 1.1 概念 协同过滤是一种借助"集体计算"的途径.它利用大量已有的用户偏好来估计用户对其未接触过的物品的喜好程度.其内在思想是相似度的定义 1.2 分类 1.在基于用户的方法的中,如果两个用户表现出相似的偏好(即对相同物品的偏好大体相同),那就认为他们的兴趣类似.要对他们中的一个用户推荐一个未知物品, 便可选取若干与其类似的用户并根据他们的喜好计算出对各个物品的综合得分,再以得分来推荐物品.其整体的逻辑是,如果其他用户也偏好某些物品,…
//加载需要的包 import org.apache.spark.rdd._ import org.apache.spark.mllib.recommendation.{ALS, Rating, MatrixFactorizationModel} //读取数据 val ratings = sc.textFile("D:/BaiduYunDownload/machine-learning/movielens/medium/ratings.dat").map { line => va…
J由于 Spark MLlib 中协同过滤算法只提供了基于模型的协同过滤算法,在网上也没有找到有很好的实现,所以尝试自己实现基于物品的协同过滤算法(使用余弦相似度距离) 算法介绍 基于物品的协同过滤算法是目前业界应用最多的算法,亚马逊网.Netflix.Hulu.YouTube 都使用该算法作为推荐系统的基础算法.算法核心思想是根据用户对物品的历史行为记录,先计算物品之间的相似度,得到与物品最相似的 TopN 个物品,再利用用户对物品的历史行为,将用户访问过的物品的相似物品推荐给用户.也就是说,…
因为协同过滤内容比较多,就新开一篇文章啦~~ 聚类和线性回归的实战,可以看:http://www.cnblogs.com/charlesblc/p/6159187.html 协同过滤实战,仍然参考:http://www.cnblogs.com/shishanyuan/p/4747778.html 其中有一些基础和算法类的,会有其他一些文章来做参考. 1.3 协同过滤实例 1.3.1 算法说明 协同过滤(Collaborative Filtering,简称CF,WIKI上的定义是:简单来说是利用某…
参考资料 [1]<Spark MLlib 机器学习实践> [2]http://blog.csdn.net/u011239443/article/details/51752904 [3]线性代数-同济大学 [4]基于矩阵分解的协同过滤算法 https://wenku.baidu.com/view/617482a8f8c75fbfc77db2aa.html [5]机器学习的正则化 http://www.cnblogs.com/jianxinzhou/p/4083921.html [6]正则化方法…
本文测试的Spark版本是1.3.1 本文将在Spark集群上搭建一个简单的小型的电影推荐系统,以为之后的完整项目做铺垫和知识积累 整个系统的工作流程描述如下: 1.某电影网站拥有可观的电影资源和用户数,通过各个用户对各个电影的评分,汇总得到了海量的用户-电影-评分数据 2.我在一个电影网站上看了几部电影,并都为其做了评分操作(0-5分) 3.该电影网站的推荐系统根据我对那几部电影的评分,要预测出在该网站的电影资源库中,有哪些电影是适合我的,并推荐给我看 4.根据我的观影习惯和用户的一个个人信息…
SparkMLlib-协同过滤推荐算法,电影推荐系统,物品喜好推荐 一.协同过滤 1.1 显示vs隐式反馈 1.2 实例介绍 1.2.1 数据说明 评分数据说明(ratings.data) 用户信息(users.dat) 电影信息(movies.dat) 程序代码 二.协同过滤推荐算法--推荐系统代码 2.1 训练数据 2.2 实战代码 2.3 运行结果(亲测可行) 三.Spark MLlib推荐算法 四.基于物品的Spark MLlib代码 推荐模型效果的评估 相关内容原文地址: 博客园:Le…
本文测试的Spark版本是1.3.1 在使用Spark的机器学习算法库之前,需要先了解Mllib中几个基础的概念和专门用于机器学习的数据类型 特征向量Vector: Vector的概念是和数学中的向量是一样的,通俗的看其实就是一个装着Double数据的数组 Vector分为两种,分别是密集型和稀疏型 创建方式如下: val array:Array[Double] = ... val vector = Vector.dense(array)//创建密集向量 val vector = Vector.…
算法说明 协同过滤(Collaborative Filtering,简称CF,WIKI上的定义是:简单来说是利用某个兴趣相投.拥有共同经验之群体的喜好来推荐感兴趣的资讯给使用者,个人透过合作的机制给予资讯相当程度的回应(如评分)并记录下来以达到过滤的目的,进而帮助别人筛选资讯,回应不一定局限于特别感兴趣的,特别不感兴趣资讯的纪录也相当重要. 协同过滤常被应用于推荐系统.这些技术旨在补充用户—商品关联矩阵中所缺失的部分. MLlib 当前支持基于模型的协同过滤,其中用户和商品通过一小组隐性因子进行…
Spark MLlib架构解析 MLlib的底层基础解析 MLlib的算法库分析 分类算法 回归算法 聚类算法 协同过滤 MLlib的实用程序分析 从架构图可以看出MLlib主要包含三个部分: 底层基础:包括Spark的运行库.矩阵库和向量库: 算法库:包含广义线性模型.推荐系统.聚类.决策树和评估的算法: 实用程序:包括测试数据的生成.外部数据的读入等功能. MLlib的底层基础解析 底层基础部分主要包括向量接口和矩阵接口,这两种接口都会使用Scala语言基于Netlib和BLAS/LAPAC…
1. 定义 协同过滤(Collaborative Filtering)有狭义和广义两种意义: 广义协同过滤:对来源不同的数据,根据他们的共同点做过滤处理. Collaborative filtering (CF) is a technique used by some recommender systems.[1] Collaborative filtering has two senses, a narrow one and a more general one.[2] In general,…
使用Spark进行ALS编程的例子可以看:http://www.cnblogs.com/charlesblc/p/6165201.html ALS:alternating least squares 关于协同过滤ALS原理的可以看这篇文章:http://www.docin.com/p-938897760.html 最后的惩罚因子那部分没看懂.前面的还挺好的. 上面3.1节关于矩阵分解模型的自然意义和解释,讲的非常好! 注:矩阵的每一行代表一个方程,m行代表m个线性联立方程. n列代表n个变量.如…
协同过滤(Collaborative Filtering,CF)算法是一种常用的推荐算法,它的思想就是找出相似的用户或产品,向用户推荐相似的物品,或者把物品推荐给相似的用户.怎样评价用户对商品的偏好?可以有很多方法,如用户对商品的打分.购买.页面停留时间.保存.转发等等.得到了用户对商品的偏好,就可以给用户推荐商品.有两种方法:用户A喜欢物品1,商品2和物品1很相似,于是把物品2推荐给用户A:或者用户A和用户B很类似,B喜欢商品2,就将商品2推荐给用户A.所以协同过滤分为两类:基于用户的协同过滤…
不多说,直接上干货! 常见的推荐算法 1.基于关系规则的推荐 2.基于内容的推荐 3.人口统计式的推荐 4.协调过滤式的推荐 (广泛采用) 协调过滤的概念 在现今的推荐技术和算法中,最被大家广泛认可和采用的就是基于协同过滤的推荐方法. 协同过滤是利用集体智慧的一个典型方法.要理解什么是协同过滤 (Collaborative Filtering, 简称 CF),首先想一个简单的问题,如果你现在想看个电影,但你不知道具体看哪部,你会怎么做?大部分的人会问问周围的朋友,看看最近有什么好看的电影推荐,而…
目录 推荐模型的分类 ALS交替最小二乘算法:显式矩阵分解 Spark Python代码:显式矩阵分解 ALS交替最小二乘算法:隐式矩阵分解 Spark Python代码:隐式矩阵分解 推荐模型的分类 最为流行的两种方法是基于内容的过滤.协同过滤. 基于内容的过滤: 比如用户A买了商品A,商品B与商品A相似(这个相似是基于商品内部的属性,比如“非常好的协同过滤入门文章”和“通俗易懂的协同过滤入门教程”比较相似),那么就能将商品B推荐给用户. 协同过滤: 利用的是训练数据是大量用户对商品的评分,即…
  一.概念 协同过滤算法主要分为基于用户的协同过滤算法和基于项目的协同过滤算法.   基于用户的协同过滤算法和基于项目的协同过滤算法 1.1.以用户为基础(User-based)的协同过滤 用相似统计的方法得到具有相似爱好或者兴趣的相邻用户,所以称之为以用户为基础(User-based)的协同过滤或基于邻居的协同过滤(Neighbor-based Collaborative Filtering). 具体步骤为: 1.收集用户信息收集可以代表用户兴趣的信息.一般的网站系统使用评分的方式或是给予评…
1 http://www.cnblogs.com/charlesblc/p/6165201.html [转载]协同过滤 & Spark机器学习实战 2 基于Spark构建推荐引擎之一:基于物品的协同过滤推荐: http://blog.csdn.net/sunbow0/article/details/42737541 3 2017年,你还在用用户画像和协同过滤做推荐系统吗? http://www.infoq.com/cn/articles/user-portrait-collaborative-f…
基于物品的协同过滤推荐算法案例在TDW Spark与MapReudce上的实现对比,相比于MapReduce,TDW Spark执行时间减少了66%,计算成本降低了40%. 原文链接:http://www.csdn.net/article/2014-11-04/2822474 算法介绍 互联网的发展导致了信息爆炸.面对海量的信息,如何对信息进行刷选和过滤,将用户最关注最感兴趣的信息展现在用户面前,已经成为了一个亟待解决的问题.推荐系统可以通过用户与信息之间的联系,一方面帮助用户获取有用的信息,另…
一.简介 协同过滤算法[Collaborative Filtering Recommendation]算法是最经典.最常用的推荐算法.该算法通过分析用户兴趣,在用户群中找到指定用户的相似用户,综合这些相似用户对某一信息的评价,形成系统关于该指定用户对此信息的喜好程度预测. 二.步骤 1.收集用户偏好. 2.找到相似的用户或物品. 3.计算推荐. 三.用户评分 从用户的行为和偏好中发现规律,并基于此进行推荐,所以收集用户的偏好信息成为系统推荐效果最基础的决定因素. 数据预处理: 1.减噪 因为用户…
作者:vivo 互联网服务器团队-Tang Shutao 现如今推荐无处不在,例如抖音.淘宝.京东App均能见到推荐系统的身影,其背后涉及许多的技术.本文以经典的协同过滤为切入点,重点介绍了被工业界广泛使用的矩阵分解算法,从理论与实践两个维度介绍了该算法的原理,通俗易懂,希望能够给大家带来一些启发.笔者认为要彻底搞懂一篇论文,最好的方式就是动手复现它,复现的过程你会遇到各种各样的疑惑.理论细节. 一. 背景 1.1 引言 在信息爆炸的二十一世纪,人们很容易淹没在知识的海洋中,在该场景下搜索引擎可…
上一篇博客中,详细介绍了UserCF和ItemCF,ItemCF,就是通过用户的历史兴趣,把两个物品关联起来,这两个物品,可以有很高的相似度,也可以没有联系,比如经典的沃尔玛的啤酒尿布案例.通过ItemCF,能能够真正实现个性化推荐,最大限度地挖掘用户的需求.在购物网站和电子商务,图书中,应用特别广泛.需要维护物品相似度表.spark的MLlib中,有FP-Growth树挖掘物品的相关度,应用很多.关于FP-Growth树的介绍,有很多博文,不详细说了.他相对于Apriori算法,做了很大的改进…
  http://product.dangdang.com/23829918.html Spark作为新兴的.应用范围最为广泛的大数据处理开源框架引起了广泛的关注,它吸引了大量程序设计和开发人员进行相关内容的学习与开发,其中 MLlib是 Spark框架使用的核心.本书是一本细致介绍 Spark MLlib程序设计的图书,入门简单,示例丰富. 本书分为 12章,从 Spark基础安装和配置开始,依次介绍 MLlib程序设计基础.MLlib的数据对象构建.MLlib中 RDD使用介绍,各种分类.聚…
[注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 .机器学习概念 1.1 机器学习的定义 在维基百科上对机器学习提出以下几种定义: l“机器学习是一门人工智能的科学,该领域的主要研究对象是人工智能,特别是如何在经验学习中改善具体算法的性能”. l“机器学习是对能通过经验自动改进的计算机算法的研究”. l“机器学习是用数据或以往的经验,以此优化计算机程序的性能标准.” 一种经常引用的英文定义是:A computer program is said t…
[注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 .MLlib实例 1.1 聚类实例 1.1.1 算法说明 聚类(Cluster analysis)有时也被翻译为簇类,其核心任务是:将一组目标object划分为若干个簇,每个簇之间的object尽可能相似,簇与簇之间的object尽可能相异.聚类算法是机器学习(或者说是数据挖掘更合适)中重要的一部分,除了最为简单的K-Means聚类算法外,比较常见的还有层次法(CURE.CHAMELEON等).网格…
MLlib 是构建在 Spark 上的分布式机器学习库,充分利用了 Spark 的内存计算和适合迭代型计算的优势,将性能大幅度提升.同时由于 Spark 算子丰富的表现力, 让大规模机器学习的算法开发不再复杂. MLlib 是 一 些 常 用 的 机 器 学 习 算 法 和 库 在Spark 平台上的实现.MLlib 是 AMPLab 的在研机器学习项目 MLBase 的底层组件. MLBase 是一个机器学习平台,详细见 http://www.cnblogs.com/zlslch/p/5726…
原文地址:https://www.ibm.com/developerworks/cn/opensource/os-cn-spark-practice4/ 引言 提起机器学习 (Machine Learning),相信很多计算机从业者都会对这个技术方向感到兴奋.然而学习并使用机器学习算法来处理数据却是一项复杂的工作,需要充足的知识储备,如概率论,数理统计,数值逼近,最优化理论等.机器学习旨在使计算机具有人类一样的学习能力和模仿能力,这也是实现人工智能的核心思想和方法.传统的机器学习算法,由于技术和…
基本思想 基于用户的协同过滤算法是通过用户的历史行为数据发现用户对商品或内容的喜欢(如商品购买,收藏,内容评论或分享),并对这些喜好进行度量和打分.根据不同用户对相同商品或内容的态度和偏好程度计算用户之间的关系.在有相同喜好的用户间进行商品推荐.简单的说就是如果A,B两个用户都购买了x.y.z三本图书,并且给出了5星的好评.那么A和B就属于同一类用户.可以将A看过的图书w也推荐给用户B.   基于用户协同过滤算法的原理图 所以,协同过滤算法主要分为两个步骤: 1.寻找相似的用户集合: 2.寻找集…
本章导读 机器学习(machine learning, ML)是一门涉及概率论.统计学.逼近论.凸分析.算法复杂度理论等多领域的交叉学科.ML专注于研究计算机模拟或实现人类的学习行为,以获取新知识.新技能,并重组已学习的知识结构使之不断改善自身. MLlib是Spark提供的可扩展的机器学习库.MLlib已经集成了大量机器学习的算法,由于MLlib涉及的算法众多,笔者只对部分算法进行了分析,其余算法只是简单列出公式,读者如果想要对公式进行推理,需要自己寻找有关概率论.数理统计.数理分析等方面的专…
无论是ICF基于物品的协同过滤.UCF基于用户的协同过滤.基于内容的推荐,最基本的环节都是计算相似度.如果样本特征维度很高或者<user, item, score>的维度很大,都会导致无法直接计算.设想一下100w*100w的二维矩阵,计算相似度怎么算? 更多内容参考--我的大数据学习之路--xingoo 在spark中RowMatrix提供了一种并行计算相似度的思路,下面就来看看其中的奥妙吧! 相似度 相似度有很多种,每一种适合的场景都不太一样.比如: 欧氏距离,在几何中最简单的计算方法 夹…