PYSPARK:pyspark.ml.classification.LogisticRegression中使用的优化技术是什么?

时间:2017-04-10 15:35:26

标签: python machine-learning pyspark logistic-regression

pyspark.ml.classification.LogisticRegression中使用的优化技术是什么?是梯度体面还是渐变上升或其他什么?如果是梯度算法,我该如何指定stepSize? 我没有在Logistic回归类中看到任何stepSize参数:

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

1 个答案:

答案 0 :(得分:0)

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

  

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

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

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