如何获取 ML 算法(如 Spark 中的线性回归)的所有超参数列表?
How to get the list of all hyperparameters for an ML algorithm like Linear Regression in Spark?
我正在学习使用 Spark
DataFrames
API 在 scala
中构建机器学习模型,并且想知道可以用于调整模型。通过到目前为止的搜索,我发现了一些 LinearRegression
的超参数,例如:
- setMaxIter
- 设置注册参数
- 设置弹性网络参数
可以通过以下方式使用:
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
,您将通过 ParamGridBuilder
到 CrossValidator
传递您选择的特征,然后 运行 管道进行估算哪个集合表现最好,下面的例子:
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
我正在学习使用 Spark
DataFrames
API 在 scala
中构建机器学习模型,并且想知道可以用于调整模型。通过到目前为止的搜索,我发现了一些 LinearRegression
的超参数,例如:
- setMaxIter
- 设置注册参数
- 设置弹性网络参数
可以通过以下方式使用:
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
,您将通过 ParamGridBuilder
到 CrossValidator
传递您选择的特征,然后 运行 管道进行估算哪个集合表现最好,下面的例子:
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