我正在使用pyspark(spark 2.4.4(我正在尝试为ALS推荐模型使用coldStartStrategy选项,但这对我不起作用。我尝试了这个(从2.4.0文档:https://spark.apache.org/docs/2.4.0/api/python/pyspark.ml.html#pyspark.ml.recommendation.ALS):
from pyspark.mllib.recommendation import ALS
als = ALS(maxIter=5, regParam=0.01,coldStartStrategy="drop")
这就是我的错误:
TypeError:object((不接受参数
我还尝试创建一个空对象,使用类似这样的setter:
als = ALS()
als.setColdStartStrategy('drop')
这就是我的错误:
属性错误:"ALS"对象没有属性"setColdStartStrategy"ALS构造器不接受任何参数,ALS类只有三种方法:mor、train和trainImplicit,没有人接受coldStartStrategy参数。即使是ALS类的实例,我也浏览到了她的所有方法,而且没有人接受这个参数。我还浏览了2.2.0 spark文档(https://spark.apache.org/docs/2.2.0/api/python/pyspark.ml.html#pyspark.ml.recommendation.ALS)也是同样的问题。
我还尝试训练模型,然后为测试阶段设置coldStartStrategy参数
model = ALS.train(rdd_train, rank, numIterations)
但我也找不到这里提到的setParams方法:https://spark.apache.org/docs/latest/api/python/_modules/pyspark/ml/recommendation.html
问题是由导入引起的,从pyspark.mllib导入的ALS模型似乎与从pyspark.ml导入的ALSs不同,通过更改导入,我修复了此错误。结论:我只是从:
from pyspark.mllib.recommendation import ALS
至
from pyspark.ml.recommendation import ALS