如何获取在Spark Scala中使用CrossValidation和ParamGridBuilder训练的最佳模型的参数? 我尝试了以下代码,但它始终显示每个参数的第一个值!
val paramGrid = new ParamGridBuilder().addGrid(als.rank, Array(15, 5, 10)).addGrid(als.regParam, Array(0.01, 0.1)).build()
val evaluator = new RegressionEvaluator().setMetricName("rmse").setLabelCol("rating").setPredictionCol("prediction")
val cv = new CrossValidator().setEstimator(als).setEvaluator(evaluator).setEstimatorParamMaps(paramGrid).setNumFolds(10)
val cvModel = cv.fit(ratings)
println(cvModel.bestModel.parent.extractParamMap)
res21: org.apache.spark.ml.param.ParamMap =
{
als_2d8bef47c820-rank: 15,
als_2d8bef47c820-regParam: 0.01,
...
}
我正在使用Spark的2.3.3版本。