如何在Spark-Scala中使用CrossValidation训练最佳模型的参数

时间:2019-05-28 15:58:56

标签: scala apache-spark machine-learning recommender-systems

如何获取在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版本。

0 个答案:

没有答案