官方文档中提到:默认使用L2正则化
如何使用L1正则化呢?
回答:
在MLLib中,你需要设置优化器的更新器如下:
import org.apache.spark.mllib.classification.LogisticRegressionWithLBFGSimport org.apache.spark.mllib.optimization.L1Updaterval lr: LogisticRegressionWithLBFGS = ???val training: RDD[LabeledPoint] = ???lr.optimizer.setUpdater(new L1Updater)lr.run(training)
在ML中,你可以将setElasticNetParam
设置为1.0:
import org.apache.spark.ml.regression.LinearRegressionval training: DataFrame = ???val lr = new LinearRegression().setElasticNetParam(1.0)lr.fit(training)