Spark MLlib中实现ALS协同过滤推荐算法的库为recommendation.py,这可库有以下三个类
__all__ = ['MatrixFactorizationModel', 'ALS', 'Rating']
-a. Rating 算法的输入,包括用户对物品的评价,为三元组
class Rating(namedtuple("Rating", ["user", "product", "rating"]))
user、producet整型数据,通常使用ID表示
rating数值型(double)数据
-b. ALS
这就是算法的实现类,有两个函数,分别对显式反馈和隐式反馈评价:
- 显式反馈
ALS.train(ratings, rank, iterations=5, lambda_=0.01, blocks=-1, nonnegative=False, seed=None)
ratings:ratings: RDD[Rating], 通过Rating函数转换够的需要训练的数据集
rank:特征数目,模型中隐藏因子数,参考设置在10 - 20
iterations=5 : 迭代次数,默认5,一般设置在10-20次
lambda: Double