推荐系统模型-基于用户推荐

该博客演示了如何在Scala中利用Apache Spark的MLlib库实现一个基于ALS的推荐系统模型。首先,从文件读取用户-电影评分数据,然后将数据转换为Rating对象。接着,配置SparkConf并创建SparkContext。通过ALS.train方法训练推荐系统模型,设置隐藏因子数量、最大迭代次数和正则化参数。最后,对模型进行保存,并展示了如何根据用户ID推荐电影。
摘要由CSDN通过智能技术生成
import org.apache.spark.mllib.recommendation.{ALS, Rating}
import org.apache.spark.{SparkConf, SparkContext}

object demo01 {

  def main(args: Array[String]): Unit = {
    val conf=new SparkConf().setMaster("local").setAppName("demo1")
    val sc=new SparkContext(conf)
    val data=sc.textFile("D:\\bigdata\\data\\ml\\u.data")
    val ratings=data.map{x=>
      val info=x.split("\\t")
      val userId=info(0).toInt
      val movieId=info(1).toInt
      val score=info(2).toDouble
      Rating(userId,movieId,score)
    }

    //建立推荐系统模型,底层通过ALS算法来求解
    //①参:数据集 
    //②参 隐藏因子k的数量不宜过大,避免产生过大的计算代价,介于u和i之间
    //③参:最大迭代次数,生产环境建议多一些,使其充分收敛
    //④参 λ正则化参数,引入正则化参数,防止模型过拟合
    val model=ALS.train(ratings,50,15,0.01)

    val moviedata=sc.textFile("D://bigdata/data/ml/u.item")

    def getmovie(userId:Int,num:Int)={
      val
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值