小编Mac*_*ner的帖子

Apache Spark ALS协同过滤结果.它们没有意义

我想尝试Spark使用MLlib进行协同过滤,如本教程中所述:https://databricks-training.s3.amazonaws.com/movie-recommendation-with-mllib.html 该算法基于"协作过滤"一文对于隐式反馈数据集",进行矩阵分解.

使用1000万个Movielens数据集,一切都正常运行.数据集分为80%培训10%测试和10%验证.

  • RMSE基线:1.060505464225402
  • RMSE(train)= 0.7697248827452756
  • 对于训练的模型,RMSE(验证)= 0.8057135933012889,等级= 24,λ= 0.1,迭代次数= 10.
  • 最佳模型将基线提高了23.94%.

虽然具有不同的训练参数,但这些值与教程类似.

我尝试了几次运行算法,总是得到对我没有任何意义的建议.即使只评价儿童电影,我也会得到以下结果:

对于评级:

  • 个人评价:玩具总动员(1995)评级:4.0
  • 个人评价:Jungle Book,The(1994)评级:5.0
  • 个人评价:Lion King,The(1994)评级:5.0
  • 个人评价:Mary Poppins(1964)评级:4.0
  • 个人评价:爱丽丝梦游仙境(1951)评级:5.0

结果:

推荐给你的电影:

  1. Oharu的生活,(Saikaku ichidai onna)(1952)
  2. 更多(1998)
  3. 谁在那边唱歌?(又名谁在那里唱歌)(Ko to tamo peva)(1980)
  4. 星期日和西布莱(Dimanches de Ville d'Avray,Les)(1962)
  5. 蓝光,(Das Blaue Licht)(1932)
  6. Harvey Milk的时代,(1984)
  7. 请投票给我(2007)
  8. 种植树木的人,(Homme qui plantait des arbres,L')(1987)
  9. Shawshank Redemption,The(1994)
  10. 只有昨天(Omohide poro poro)(1991)

除了昨天以外似乎没有任何意义.

如果有人知道如何解释这些结果或获得更好的结果,我将非常感谢您分享您的知识.

最好的祝福

编辑:

如我所建议的那样,我训练了另

  • 基线错误:1.0587417035872992
  • RMSE(火车)= 0.7679883378412548
  • 对于以rank = 100,lambda = 0.1和numIter = 10训练的模型,RMSE(验证)= 0.8070339258049574.

不同的个人评分:

  • 个人评价:星球大战:第六集 - 绝地归来(1983)评级:5.0
  • 个人评价:Mission:Impossible(1996)评级:4.0
  • 个人评价:Die Hard:复仇(1995)评级:4.0
  • 个人评价:Batman Forever(1995)评级:5.0 …

machine-learning collaborative-filtering matrix-factorization apache-spark

5
推荐指数
1
解决办法
5000
查看次数