gpt4 book ai didi

scala - 如何从 CrossValidatorModel 中提取最佳参数

转载 作者:行者123 更新时间:2023-12-02 17:59:15 25 4
gpt4 key购买 nike

我想找到在 Spark 1.4.x 的 CrossValidator 中构建最佳模型的 ParamGridBuilder 参数,

Pipeline Example在 Spark 文档中,他们通过在 Pipeline 中使用 ParamGridBuilder 添加不同的参数(numFeaturesregParam)。然后通过以下代码行他们制作了最佳模型:

val cvModel = crossval.fit(training.toDF)

现在,我想知道 ParamGridBuilder 中生成最佳模型的参数(numFeaturesregParam)是什么。

我已经使用了以下命令但没有成功:

cvModel.bestModel.extractParamMap().toString()
cvModel.params.toList.mkString("(", ",", ")")
cvModel.estimatorParamMaps.toString()
cvModel.explainParams()
cvModel.getEstimatorParamMaps.mkString("(", ",", ")")
cvModel.toString()

有什么帮助吗?

提前致谢,

最佳答案

获取正确 ParamMap 对象的一种方法是使用 CrossValidatorModel.avgMetrics: Array[Double] 查找 argmax ParamMap:

implicit class BestParamMapCrossValidatorModel(cvModel: CrossValidatorModel) {
def bestEstimatorParamMap: ParamMap = {
cvModel.getEstimatorParamMaps
.zip(cvModel.avgMetrics)
.maxBy(_._2)
._1
}
}

当在您引用的管道示例中训练的 CrossValidatorModel 上运行时,给出:

scala> println(cvModel.bestEstimatorParamMap)
{
hashingTF_2b0b8ccaeeec-numFeatures: 100,
logreg_950a13184247-regParam: 0.1
}

关于scala - 如何从 CrossValidatorModel 中提取最佳参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31749593/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com