apache-spark-mllib - 如何在 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);
我想为以前运行的用户和项目重用特征向量。如何将这些值设置为初始点?
解决方案
如果您想在每次运行应用程序时节省时间并跳过训练步骤,您可以简单地保存训练过的 als:
model.save(jsc.sc(), "saved_model");
并将其加载到另一个脚本中。
更多信息在这里: https ://spark.apache.org/docs/2.2.0/mllib-collaborative-filtering.html
推荐阅读
- docker - 如何更新在我的 ddev 容器中使用的作曲家版本?
- python - Django:每次我开发我的 django 应用程序时都必须打开虚拟环境吗
- python - Python & Selenium:遍历 WebElements 错误列表:StaleElementReferenceException
- python - 根据列表中的值过滤 pyspark 数据框
- java - Tess4J:结果字符串无法解析为 int
- .net-core - .NET Web API 从控制器名称中剥离斜杠 - 如何禁用该行为?
- python - jinja2.exceptions.UndefinedError:没有称为“脚本”的父块
- android - 如何在 webview 中有效地显示没有网络
- spring - 如果用户未在 Spring Security 中进行身份验证,如何将用户扔到 /login 以外的页面
- jsf - 在 IntelliJ 上的 Facelets 文件中调试表达式语言 (EL)