PYSPARK:pyspark.ml.classification.LogisticRegression中使用的优化技术



pyspark.ml.classification.LogisticRegression中使用的优化技术是什么?是梯度体面还是梯度上升或其他什么?如果是梯度算法之一,如何指定步长?我在逻辑回归类中没有看到任何步大小参数:

class pyspark.ml.classification.LogisticRegression(self, featuresCol="features", labelCol="label", predictionCol="prediction", maxIter=100, regParam=0.0, elasticNetParam=0.0, tol=1e-6, fitIntercept=True, threshold=0.5, thresholds=None, probabilityCol="probability", rawPredictionCol="rawPrediction", standardization=True, weightCol=None, aggregationDepth=2, family="auto")

根据文档,fit方法需要额外的参数,但是进入兔子洞试图找到fit实际指向的位置是非常困难的。话虽如此,如果您查看mllib.classification模块,您会发现逻辑回归的第一个实现是 LogisticRegressionWithSGD .在那里,您会发现一个弃用说明,将您指向ml.classifcation模块。

注意:在 2.0.0 中已弃用。使用 ml.classification.LogisticRegression 或 LogisticRegressionWithLBFGS。

所以从本质上讲,火花告诉你,如果你想使用SGD,那就用ml.classifcation.LogisticRegression。我的假设(目前未经测试(是您可以使用mllib.classifcation.LogisticRegressionWithSGD方法的参数作为ml.classification.LogisticRegression.fit方法的params= kwargs。因此,在这种情况下,您可以尝试传递类似 folliwng 的内容。请注意,旧mllib.classification.LogisticRegressionWithSGD.train方法的默认步骤是 1.0。

my_lr_model = my_lr_obj.fit(params={'step': 0.5})

最新更新