从examples中学spark(三):ALSExample.scala

文章目录


##学习前(理论)
最小二乘法(Spark使用的是交叉最小二乘法(ALS)来最优化损失函数——ALS 的目标函数不是凸函数,所以固定一部分参数优化另外一部分参数,从而一般很难求得全局最优解)

基于矩阵分解的推荐算法(评分数据集中,并不是每个用户都对每个产品进行过评分,所以这个矩阵往往是很稀疏的【所以更应该多注意过拟合的问题】,也就是说用户i对产品j的评分很多地方是空的,ALS所做的事情就是将这个稀疏矩阵通过一定的规律填满,这样就可以从矩阵中得到任意一个user对任意一个product的评分,然后以此为据做推荐。所以说,ALS算法的核心就是:打分矩阵是近似低秩的。换句话说,打分矩阵A(m∗n)”可以由“用户喜好特征矩阵U(m∗k)”和“产品特征矩阵V(n∗k)”的乘积。

显示反馈与隐式反馈(显式数据的数值代表偏好,隐式数据【无正面的直接表达用户喜好情况的数据】的数值代表了置信等级(confidence level))
##学习中(领悟)

// scalastyle:off println
package org.apache.spark.examples.ml

// $example on$
import org.apache.log4j.{Level, Logger}
import org.apache.spark.ml.evaluation.RegressionEvaluator
import org.apache.spark.ml.recommendation.ALS
// $example off$
import org.apache.spark.sql.SparkSession

object ALSExample {

  // $example on$
/**  当你声明了一个 case class(样例类)时,scala会帮助我们做下面几件事情:
  1 构造器中的参数如果不被声明为var的话,它默认的话是val类型的,但一般不推荐将构造器中的参数声明
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值