首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我救不了ALS模型

我救不了ALS模型
EN

Stack Overflow用户
提问于 2022-06-07 04:14:05
回答 2查看 115关注 0票数 0
代码语言:javascript
复制
from pyspark.ml.recommendation import ALS, ALSModel
from pyspark.ml.tuning import ParamGridBuilder, CrossValidator
from pyspark.mllib.evaluation import RegressionMetrics, RankingMetrics
from pyspark.ml.evaluation import RegressionEvaluator

als = ALS(maxIter=15, 
              regParam=0.08, 
              userCol="ID User", 
              itemCol="ID Film", 
              ratingCol="Rating",
              rank=20,
              numItemBlocks=30,
              numUserBlocks = 30,
              alpha = 0.95,
              nonnegative = True, 
              coldStartStrategy="drop",
             implicitPrefs=False)
model = als.fit(training_dataset)

model.save('model')

每次我调用保存方法时,jupyter笔记本都给我类似的错误。

代码语言:javascript
复制
An error occurred while calling o477.save.
: org.apache.spark.SparkException: Job aborted.
    at org.apache.spark.internal.io.SparkHadoopWriter$.write(SparkHadoopWriter.scala:106)

我知道前面的问题和答案,并尝试过这样做:

代码语言:javascript
复制
model.save('model')

代码语言:javascript
复制
model.write().save("saved_model")

代码语言:javascript
复制
als.write().save("saved_model")

代码语言:javascript
复制
als.save('model')

代码语言:javascript
复制
import pickle
s = pickle.dumps(als)

代码语言:javascript
复制
als_path = "from_C:Folder_to_my_project_root" + "/als"
als.save(als_path)

我的问题是如何保存ALS模型,这样我就可以在每次运行程序时都不用经过训练就可以加载它。

EN

回答 2

Stack Overflow用户

发布于 2022-08-23 07:39:32

我过去经常运行这个问题,我为netflix奖品数据集执行推荐,总共有1亿条记录。这就是我所做的,试着运行50%的数据,然后慢慢地添加百分比,看看它会在哪里失效。在我的例子中,数据慢慢地加到100%的数据中。关闭不必要的Chrome选项卡也有帮助。

票数 2
EN

Stack Overflow用户

发布于 2022-06-16 03:07:02

基本上,o477和oXXX错误在一般情况下意味着在执行任务时会出现错误。因为你似乎在做电影推荐,所以我想你使用的是电影或netflix数据集。这可能意味着其中之一:

  1. 文件太大,不能对
  2. 进行筛选,模型太复杂,内存耗尽
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72525835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档