首页 > 解决方案 > 如何在 spark mlib 中设置 ALS 推荐器的起点?

问题描述

我正在使用此代码获取 ALS 建议:

SparkSession spark = SparkSession
        .builder()
        .appName("SomeAppName")
        .config("spark.master", "local")
        .getOrCreate();
JavaRDD<Rating> ratingsRDD = spark
        .read().textFile(args[0]).javaRDD()
        .map(Rating::parseRating);
Dataset<Row> ratings = spark.createDataFrame(ratingsRDD, Rating.class);
ALS als = new ALS()
        .setMaxIter(1)
        .setRegParam(0.01)
        .setUserCol("userId")
        .setItemCol("movieId")
        .setRatingCol("rating");
ALSModel model = als.fit(ratings);
model.setColdStartStrategy("drop");
Dataset<Row> rowDataset = model.recommendForAllUsers(50);

我想为以前运行的用户和项目重用特征向量。如何将这些值设置为初始点?

标签: apache-spark-mllibrecommender-systems

解决方案


如果您想在每次运行应用程序时节省时间并跳过训练步骤,您可以简单地保存训练过的 als:

model.save(jsc.sc(), "saved_model");

并将其加载到另一个脚本中。

更多信息在这里: https ://spark.apache.org/docs/2.2.0/mllib-collaborative-filtering.html


推荐阅读