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