【发布时间】:2018-06-11 16:21:02
【问题描述】:
PySpark 的逻辑回归接受 elasticNetParam 参数。如果我将此参数设置为0.2,这是什么意思?是指0.2 的l1 和0.8 的l2 还是相反?
另外,我一直在尝试使用 sklearn 重现 PySpark 的结果。为此,我使用了来自 sklearn 的 SGDClassifier。
这是我用来初始化 PySpark 逻辑回归模型的参数字典
{'elasticNetParam': 0.41880231596887807,
'regParam': 0.05816730909769129,
'threshold': 0.4011073540317653,
'maxIter': 21.0}
这就是我用于 sklearn 的 SGDClassifier 的东西
{'loss':'log',
'penalty':'elasticnet',
'l1_ratio':0.41880231596887807,
'alpha':0.05816730909769129,
'fit_intercept':True,
'max_iter':21*train_pandas.shape[0]}
这两个参数字典是否等效?或者我应该将l1_ratio 更改为(1-0.41880231596887807)?
关于max_iter,由于训练方法的不同,我想到了乘以行数。我知道我不会得到确切的结果,我正在寻找类似的结果。 +/- 0.01 的差异是可以接受的。但目前,差异约为 -0.05,我正在寻求弥补这一点。
【问题讨论】:
标签: python apache-spark scikit-learn pyspark