【发布时间】:2016-10-05 00:22:04
【问题描述】:
official documentation says 表示:默认使用 L2 正则化
如何使用 L1?
【问题讨论】:
标签: apache-spark machine-learning apache-spark-mllib apache-spark-ml
official documentation says 表示:默认使用 L2 正则化
如何使用 L1?
【问题讨论】:
标签: apache-spark machine-learning apache-spark-mllib apache-spark-ml
在 MLLib 中,您必须按如下方式设置优化器更新器:
import org.apache.spark.mllib.classification.LogisticRegressionWithLBFGS
import org.apache.spark.mllib.optimization.L1Updater
val lr: LogisticRegressionWithLBFGS = ???
val training: RDD[LabeledPoint] = ???
lr.optimizer.setUpdater(new L1Updater)
lr.run(training)
在 ML 中,您可以将 setElasticNetParam 设置为 1.0:
import org.apache.spark.ml.regression.LinearRegression
val training: DataFrame = ???
val lr = new LinearRegression().setElasticNetParam(1.0)
lr.fit(training)
【讨论】: