我正在使用下面的代码来获取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);我想重用上一次运行中的用户和项目的特征向量。如何将这些值设置为初始点?
发布于 2018-12-27 03:39:54
如果你想节省时间,并在每次运行应用程序时跳过训练步骤,你可以简单地使用以下命令保存训练过的als:
model.save(jsc.sc(), "saved_model");
并将其加载到另一个脚本中。
更多信息请点击此处:https://spark.apache.org/docs/2.2.0/mllib-collaborative-filtering.html
https://stackoverflow.com/questions/53892157
复制相似问题