基于sparkml的scala推荐系统

ncecgwcz  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(419)

我正在按照文档示例构建一个推荐系统,我正在创建一个很好的构造函数

val als = new ALS()
  .setMaxIter(maxIterations)
  .setRegParam(regressionParam)
  .setUserCol("user_id")
  .setItemCol("item_id")
  .setRatingCol("rating")

val model = als.fit(trainData)
val predictions = model.transform(testData)
println("predictions"+predictions.show(80))

val evaluator = new RegressionEvaluator()
  .setMetricName("rmse")
  .setLabelCol("rating")
  .setPredictionCol("prediction")
val rmse = evaluator.evaluate(predictions)
println(s"Root-mean-square error = $rmse")
predictions

我训练模型,设置一切,但我这里的主要问题是,我可以预测与测试数据返回预测因子为每个项目id我传递给它,但我实际上需要的是,该模型可以建议我从一个用户的项目id没有预测一个项目id可以通过添加一个预测列合适。org.apache.spark.ml.recommendation.als能做到这一点吗?

vx6bjr1n

vx6bjr1n1#

当前,要为user\u id=1的用户推荐10个热门项目,您必须执行以下操作:

val predictionsForUser1 = predictions
    .where(col("user_id") === 1)
    .orderBy(col("predictions").desc)
    .limit(10)

在未来的spark版本中,它将以更加用户友好的方式实现

相关问题