gpt4 book ai didi

python - Spark ml 中 ALS 的意外关键字参数 'coldStartStrategy'

转载 作者:太空宇宙 更新时间:2023-11-03 15:07:52 25 4
gpt4 key购买 nike

我发现了几篇帖子,其中用户想知道为什么他们在使用 ALS 时在预测中收到 NaN 值。我遇到了同样的问题,似乎找到了答案和实现的解决方案,并在文档中进行了详细讨论:

注意:这里有一个指向 coldStartStrategy() 文档的工作链接,但似乎由于我的问题,该文档已被删除。

我认为这可以解决问题。除非更新到 Spark 2.1.1(在 2.1.0 上不起作用),我仍然收到相同的错误:

类型错误:init() 收到意外的关键字参数“coldStartStrategy”

这是我尝试使用该参数的地方:

full_train, full_test = ugr_df.randomSplit([0.7, 0.3], seed=0L)
als = ALS(rank = rank, maxIter = maxIter, regParam = lmbda,
userCol = "user_id", itemCol="game_id", seed = seed,
ratingCol="rating", coldStartStrategy="drop")
optimized_model = als.fit(full_train)

我以这种方式导入 ALS:

from pyspark.ml.recommendation import ALS

当我去掉冷启动参数时,我的代码工作正常。从我在文档中看到的,我正在正确地实现它。

  • 论证不能正常工作有什么原因吗?
  • 如果我不打算使用它,我可以安全地执行以下操作以获得相同的效果吗?即以下代码与 coldStartStrategy 参数同义吗?

    predictions = optimized_model.transform(full_test)
    predictions_drop = predictions.dropna()

然后继续使用predictions_drop df进行回归分析。

最佳答案

coldStartStrategy 已在 Spark 2.2 中随 SPARK-14489 一起引入,但尚未发布:

如果您想使用它,您必须从源代码构建 Spark 或使用开发人员构建。

调用 na.drop 应该与使用 drop 策略具有相同的效果,internally it is implemented as :

case ALSModel.Drop =>
predictions.na.drop("all", Seq($(predictionCol)))

关于python - Spark ml 中 ALS 的意外关键字参数 'coldStartStrategy',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44479293/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com