问题描述
我正在Spark(Pyspark)中构建推荐系统,并且我有多个隐式评级列,我希望将其用作超参数。
als = ALS(maxIter=20,regParam=0.01,userCol='customer',itemCol='itemID',coldStartStrategy='drop',implicitPrefs=True)
pipeline = Pipeline(stages=[als])
paramGrid = ParamGridBuilder()\
.addGrid(als.rank,[10,20,25,30])\
.addGrid(als.alpha,list_alpha_values)\
.addGrid(als.ratingCol,list_ratings_cols)\
.build()
evaluator = RegressionEvaluator(metricName='rmse',labelCol= **???**,predictionCol='prediction')
crossval=CrossValidator(pipeline,paramGrid,evaluator)
要点是,如何正确地将正确的评级列传递给评估者?我可以将其添加到paramgrid中,但是当不需要它时,它将“交叉列”,或者可以将其全部放在列的for循环中。这两种情况都会使我损失性能/时间。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)