我正在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循环中。这两种情况都会使我的表现/花费的时间有所损失。
暂无答案!
目前还没有任何答案,快来回答吧!