P1_4 推荐系统
Spark MLlib ALS算法
由于用户对产品的评价分为两种,所以ALS算法训练数据的函数有两类:
-a. 针对显式评价数据训练函数
def train(ratings: RDD[Rating], rank: Int, iterations: Int)
-b. 针对隐式评价数据训练函数
def trainImplicit(ratings: RDD[Rating], rank: Int, iterations: Int)
解释参数:
必须参数:
- 第一个参数ratings:
一个RDD,里面的数据类型是Rating实例对象
case class Rating (user: Int, product: Int, rating: Double)
- 第二个参数rank:
特征的数目
number of features to use (also referred to as the number of latent factors)
- 第三个参数iterations:
迭代的次数,官方默认值是5(pyspark源码中)
通过一个因子矩阵,交替得到另外一个因子矩阵,反复迭代。