spark中的ALS
ALS的意思是交替最小二乘法(Alternating Least Squares),它只是是一种优化算法的名字,被用在求解spark中所提供的推荐系统模型的最优解。spark中协同过滤的文档中一开始就说了,这是一个基于模型的协同过滤(model-based CF),其实它是一种近几年推荐系统界大火的隐语义模型中的一种。隐语义模型又叫潜在因素模型,它试图通过数量相对少的未被观察到的底层原因,来解释大量用户和产品之间可观察到的交互。操作起来就是通过降维的方法来补全用户-物品矩阵,对矩阵中没有出现的值进行估计。基于这种思想的早期推荐系统常用的一种方法是SVD(奇异值分解)。该方法在矩阵分解之前需要先把评分矩阵R缺失值补全,补全之后稀疏矩阵R表示成稠密矩阵R',然后将R’分解成如下形式:
我们知道,在推荐系统中用户和物品的交互数据分为显性反馈和隐性反馈数据的。在ALS中这两种情况也是被考虑了进来的,分别可以训练如下两种模型:
val model1 = ALS.train(ratings, rank, numIterations, lambda)//显性反馈模型
val model2 = ALS.trainImplicit(ratings, rank, numIterations, lambda, alpha)
//隐性反馈模型
model.recommendProducts(userID, N)
model.predict(user, item)
model.predict(RDD[int, int])
model.productFeatures
model.userFeatures
1.《spark机器学习》
spark中的ALS相关推荐
- Spark中组件Mllib的学习11之使用ALS对movieLens中一百万条(1M)数据集进行训练,并对输入的新用户数据进行电影推荐
更多代码请见:https://github.com/xubo245/SparkLearning 1解释 spark-1.5.2 数据集:http://grouplens.org/datasets/mo ...
- Spark中常用的算法
Spark中常用的算法: 3.2.1 分类算法 分类算法属于监督式学习,使用类标签已知的样本建立一个分类函数或分类模型,应用分类模型,能把数据库中的类标签未知的数据进行归类.分类在数据挖掘中是一项重要 ...
- spark中累加器的使用(转)
环境: ubuntu16.04 64 伪分布式 使用的spark是2.3.1 scala 2.11.8 参考连接: https://blog.csdn.net/android_xue/article/ ...
- spark使用之ALS版本对比
hi各位大佬好,我是菜鸟小明哥,最近在搞spark的破事,别人一问只会pyspark有点low,因此有必要学习下java-spark,以ALS为例开展,毕竟也是推荐中常用的方法,这个有必要知道. 疑问 ...
- Spark中的内存计算是什么?
由于计算的融合只发生在 Stages 内部,而 Shuffle 是切割 Stages 的边界,因此一旦发生 Shuffle,内存计算的代码融合就会中断. 在 Spark 中,内存计算有两层含义: 第一 ...
- Java查询spark中生成的文件_java+spark-sql查询excel
Spark官网下载Spark 下载Windows下Hadoop所需文件winutils.exe 同学们自己网上找找吧,这里就不上传了,其实该文件可有可无,报错也不影响Spark运行,强迫症可以下载,本 ...
- Spark中Task,Partition,RDD、节点数、Executor数、core数目(线程池)、mem数
Spark中Task,Partition,RDD.节点数.Executor数.core数目的关系和Application,Driver,Job,Task,Stage理解 from:https://bl ...
- 解决spark中遇到的数据倾斜问题
一. 数据倾斜的现象 多数task执行速度较快,少数task执行时间非常长,或者等待很长时间后提示你内存不足,执行失败. 二. 数据倾斜的原因 常见于各种shuffle操作,例如reduceByKey ...
- 理解spark中的job、stage、task
什么是Spark? Spark是处理大数据常用的计算引擎.Spark是一个用来实现快速而通用的集群计算的平台.扩展了广泛使用的MapReduce计算模型,而且高效地支持更多的计算模式,包括交互式查询和 ...
最新文章
- Linux-sort排序
- dd linux 尾部添加0_Linux文件目录命令整理Linux学习
- 3.认识和操作一下mysql的基本命令
- 职场中必需修炼的七项意识
- 开发基于深度学习的人脸识别【考勤/签到】系统
- Java如何判断整数溢出,溢出后怎么得到提示?
- 基于链表的学生成绩最高分计算问题计算用c语言编写课程设计,C语言程序设计课程设计-基于链表的学生成绩管理系统.doc...
- Git详解(2)——Git基础
- matlab 外接圆,【外接圆matlab知道三个顶点的坐标,如何求这三个顶点组成的三角形外接圆的半径与圆心坐标?】作业帮...
- UA MATH564 概率论 概率不等式
- 什么是网络爬虫?爬虫有什么好处?
- vb 复制 剪贴板 html,VB.NET中调用系统的剪贴板完成数据的复制和粘贴
- 什么是iBeacon?
- python编程求长方形的面积_python实现用类读取文件数据并计算矩形面积
- WebRTC实时通信系列教程7 使用Socket.IO搭建信令服务器交换信息
- 美团机器学习——特征工程
- 边缘之战鸣枪 新华三蓄势待发
- 统计学 假设检验 P值
- 热销超极本iFunk翼S到底怎么样?
- 数字签名、证书,RSA加密、解密
热门文章
- android ndk使用c 11,使用c 11 std :: async在android ndk中使用不完整类型无效
- python读取mysql数据_如何将mysql的数据读取python
- javascript--弹出对话框 四种对话框 获得用户输入值 .
- java传统的项目有哪些内容_请问java全套内容都有什么呢?
- java静态多态_Java静态方法不具有多态性详解
- python某行某列读取数据_使用scrpython从某行的第一列提取数据
- kubernetes英语怎么读_陷阱英语单词怎么读?
- js if判断多个条件_EXCEL一对多条件查找显示多个结果(INDEX+SMALL+IF+ROW函数组合)...
- linux界面版admin,linux下Nginx+Django Admin界面无样式问题解决方法
- 华为新系统鸿蒙有哪些手机_华为鸿蒙OS系统传来新消息!外媒宣布:未来几年内华为手机都将无缘...