在spark的crossvalidator中将正确的labelcol作为超参数传递

ilmyapht  于 2021-05-19  发布在  Spark
关注(0)|答案(0)|浏览(223)

我正在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循环中。这两种情况都会使我的表现/花费的时间有所损失。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题