Spark中的逻辑回归算法中有两个参数,regParam正则化参数和elasticNetParam弹性网参数,通过设置这两个参数,可以间接确定算法中的L1和L2参数。
-
反推公式
公式比较简单,可以从源码中看到,如下val regParamL1 = $(elasticNetParam) * $(regParam) val regParamL2 = (1.0 - $(elasticNetParam)) * $(regParam)
反推公式如下:
val RegParam = L1Param + L2Param
val ElasticNetParam = L1Param / (L1Param + L2Param)
- 参数调优
当涉及到参数调优时,情况会复杂一些。因为L1参数的取值向量和L2参数的取值向量映射回RegParam,ElasticNetParam 时,向量中的元素个数会产生变化。
目标调优参数
val L1Param = Array(0.1,0.2)
val L2Param = Array(0.2,0.3)
因为在这里,参数调优直接调用ml包中的ParamMap类
以逻辑回归为例子,首先定义逻辑回归lr
val lr = new LogisticRegression()
.setFitIntercept(true)
.setStandardization(true)
.setFeaturesCol("scaledFeatures")
.setLabelCol(lab