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")
答案 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})