0

我正在使用此代码获取 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);

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

4

1 回答 1

0

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

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

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

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

于 2018-12-26T19:39:54.420 回答