ALS思路+代码(全) (待整理)

本文介绍了如何使用Spark的mllib库实现ALS推荐系统。首先通过设置logLevel避免过多的日志输出,然后加载和解析数据到Rating对象。接着,配置ALS模型的参数如rank、iterations和lambda,训练模型。最后,展示了如何进行预测并比较实际评分与预测评分的差异,同时揭示了Rating矩阵的维度和如何观察MatrixFactorizationModel的内部结构。
摘要由CSDN通过智能技术生成
sc.setLogLevel("WARN")//设置不打印一堆INFO信息(减少打印量 保证Shell页面清晰干净)




一:导入相关recommendation包中相关类,然后加载数据,并解析到RDD【Rating】对象


①导入包,recommendation._是导入recommendation包中全部的类
scala> import org.apache.spark.mllib.recommendation._
import org.apache.spark.mllib.recommendation._


②加载数据;匹配模式;user product rating的类型是Int Int Double,需要转换;
scala> val data = sc.textFile("/root/cccc.txt").map(_.split(",") match {case Array (user,product,rating) => Rating (user.toInt,product.toInt,rating.toDouble)})
data: org.apache.spark.rdd.RDD[org.apache.spark.mllib.recommendation.Rating] = MapPartitionsRDD[29] at map at <console>:24


或者:val data = sc.textFile("/root/cccc.txt").map(_.split(",");Rating(f(0).toInt,f(1).toInt,f(2).toDouble) //这句运行有错。
/**如果不用模式匹配 还可以用if判断(本身case就是if的另一种形式)**/


【附加:.first可以查看数据的第一行;.count可以统计数据的行数
scala> data.first
res24: org.apache.spark.mllib.recommendation.Rating = Rating(1,1,5.0)


scala> data.count
res25: Long = 16                                                 】




----------------------------------------------------------------------------------------------
二:设置参数,建立ALS模型


利用自带的函数:
ALS.train(data,rank,iterations,lambda)
各参数意义:
ALS.train(数据,维度,迭代次数,正则化参数)


细释:k:维度(这里用rank表示),rank一般选在8到20之间
      iterations:迭代次数
      lambda:正则化参数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值