【发布时间】:2018-07-18 14:15:53
【问题描述】:
我想使用排名指标 (MAP@k) 优化 PySpark 管道的超参数。我在文档中看到了如何使用Evaluation (Scala) 中定义的指标,但我需要定义一个自定义评估器类,因为 MAP@k 尚未实现。所以我需要做类似的事情:
model = Pipeline(stages=[indexer, assembler, scaler, lg])
paramGrid_lg = ParamGridBuilder() \
.addGrid(lg.regParam, [0.001, 0.1]) \
.addGrid(lg.elasticNetParam, [0, 1]) \
.build()
crossval_lg = CrossValidator(estimator=model,
estimatorParamMaps=paramGrid_lg,
evaluator=MAPkEvaluator(),
numFolds=2)
MAPkEvaluator() 是我的自定义评估器。我看到了similar question,但没有看到答案。
是否有可用的示例或文档?有谁知道是否可以在 PySpark 中实现它?我应该实现哪些方法?
【问题讨论】:
-
您应该能够通过从
Evaluator(spark.apache.org/docs/latest/api/python/…) 基类扩展并提供您的自定义指标实现来完成此操作。
标签: apache-spark pyspark cross-validation metrics