我是靠谱客的博主 听话鸡翅,最近开发中收集的这篇文章主要介绍Spark机器学习- 推荐系统ALSSpark-推荐系统ALS,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Spark-推荐系统ALS

1.帮助顾客快速定位需求,节省时间
2.大幅度提高销售量

协同过滤

根据用户对物品或者信息的偏好,发现物品或者内容本身的相关性,或者是发现用户的相关性,然后再基于这些关联性进行推荐。
基于协同过滤的推荐可以分为三个子类:

基于用户的推荐(User-based )

基于项目的推荐(Item-based )

基于模型的推荐(Model-based )

根据所有用户对物品或者信息的偏好,发现与当前用户偏好相似的“邻居”用户群,基于周围k个邻居的历史偏好信息,为当前用户进行推荐。

案列

根据用户和用户id和评分推荐

数据集

用户id 物品id 评分
196	242	3	881250949
186	302	3	891717742
22	377	1	878887116
244	51	2	880606923
166	346	1	886397596
298	474	4	884182806
115	265	2	881171488
253	465	5	891628467
305	451	3	886324817
6	86	3	883603013
62	257	2	879372434
286	1014	5	879781125
200	222	5	876042340
210	40	3	891035994
224	29	3	888104457
303	785	3	879485318
122	387	5	879270459
194	274	2	879539794

导入数据,并将数据转换为Rating

    val parsseRating = (string:String)=>
      {
        val stringsArray = string.split("t")
        import org.apache.spark.ml.recommendation.ALS.Rating
        Rating(stringsArray(0).toInt, stringsArray(1).toInt, stringsArray(2).toFloat)
      }

      val data = spark.read.textFile("src/main/scala1/coding-271/ch12/u.data")
        .map(parsseRating)
        . toDF("userID","itemID","rating")

获取训练集和测试集

val Array(traing,test) = data.randomSplit(Array(0.8, 0.2))

traing.show(false)

使用ALS算法进行推荐

import org.apache.spark.ml.recommendation.ALS
val als = new ALS()
  .setMaxIter(20)
  .setUserCol("userID")
  .setItemCol("itemID")
  .setRatingCol("rating")
  .setRegParam(0.01)

val model = als.fit(traing)
val predictions = model.transform(test)
predictions.show(false) //根据userId,itemID 预测rating

自定义一个用户id,商品id进行推荐

val users = spark.createDataset(Seq(196->10)).toDF("userID","itemID")
model.transform(users).show(false)

对模型进行评估

val evaluator = new RegressionEvaluator()
  .setMetricName("rmse")
  .setLabelCol("rating")
  .setPredictionCol("prediction")
val rmse = evaluator.evaluate(predictions)
println(rmse)

模型持久化

保存加载模型

//机器学习持久化
//模型保存
//model.save("./xxx")
//模型加载
//ALS.load("xx")

最后

以上就是听话鸡翅为你收集整理的Spark机器学习- 推荐系统ALSSpark-推荐系统ALS的全部内容,希望文章能够帮你解决Spark机器学习- 推荐系统ALSSpark-推荐系统ALS所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(34)

评论列表共有 0 条评论

立即
投稿
返回
顶部