如何在 spark MLlib 中对 LogisticRegressionWithLBFGS 使用 L1 正则化

How to use L1 Regularization for LogisticRegressionWithLBFGS in spark MLlib

official documentation says即:默认使用L2正则化

如何使用 L1?

在 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)