如何获取 ML 算法(如 Spark 中的线性回归)的所有超参数列表?

How to get the list of all hyperparameters for an ML algorithm like Linear Regression in Spark?

我正在学习使用 Spark DataFrames API 在 scala 中构建机器学习模型,并且想知道可以用于调整模型。通过到目前为止的搜索,我发现了一些 LinearRegression 的超参数,例如:

可以通过以下方式使用:

import org.apache.spark.ml.regression.LinearRegression

val lr = new LinearRegression().setMaxIter(100).setRegParam(0.3).setElasticNetParam(0.8)
val lrModel = lr.fit(training)

Spark 中是否有可以列出所有可调超参数的文档页面或方法?类似于:

LinearRegression.getParamList()
RandomForest.getParamList()

检查 ml-tuning,利用 ML-Pipelines,您将通过 ParamGridBuilderCrossValidator 传递您选择的特征,然后 运行 管道进行估算哪个集合表现最好,下面的例子:

val lr = new LinearRegression()
.setMaxIter(10)

val paramGrid = new ParamGridBuilder()
.addGrid(lr.regParam, Array(0.1, 0.01))
.addGrid(lr.fitIntercept)
.addGrid(lr.elasticNetParam, Array(0.0, 0.5, 1.0))
.build()

val trainValidationSplit = new TrainValidationSplit()
.setEstimator(lr)
.setEvaluator(new RegressionEvaluator)
.setEstimatorParamMaps(paramGrid)
.setTrainRatio(0.8)

val model = trainValidationSplit.fit(training)

您可以进一步浏览 scala 文档 ml.param, there is a method explainParam() but I have not used it api/scala/pipeline