我想尝试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
结果:
推荐给你的电影:
- Oharu的生活,(Saikaku ichidai onna)(1952)
- 更多(1998)
- 谁在那边唱歌?(又名谁在那里唱歌)(Ko to tamo peva)(1980)
- 星期日和西布莱(Dimanches de Ville d'Avray,Les)(1962)
- 蓝光,(Das Blaue Licht)(1932)
- Harvey Milk的时代,(1984)
- 请投票给我(2007)
- 种植树木的人,(Homme qui plantait des arbres,L')(1987)
- Shawshank Redemption,The(1994)
- 只有昨天(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 …