【发布时间】:2017-10-13 03:50:55
【问题描述】:
scikit-learn 库具有以下看起来相似的分类器:
- 逻辑回归分类器有不同的求解器,其中之一 是'sgd'
- 它还有一个不同的分类器'SGDClassifier'和损失 对于逻辑回归,参数可以称为“log”。
它们本质上是相同的还是不同的?如果它们不同,那么两者之间的实现有何不同?考虑到逻辑回归问题,您如何决定使用哪一个?
【问题讨论】:
-
LogisticRegression 模块没有 SGD 算法('newton-cg'、'lbfgs'、'liblinear'、'sag'),但模块 SGDClassifier 也可以解决 LogisticRegression。这意味着您有 5 个可以使用的求解器。这些之间存在巨大差异,并且文档中给出了一些可供选择的规则(例如,第 1 组中的哪一个)。 SGD 通常用于非常有效的大规模问题。与其他人相比,它可能非常依赖于选择的超参数(学习率、衰减……)。糟糕的超参数不仅会导致性能下降,还会导致糟糕的结果(未达到全局最小值)
-
谢谢。我对“sag”和“sgd”感到困惑。 “sag”是指随机平均梯度吗?我认为这类似于 sgd,除非随机平均梯度与随机平均梯度下降有很大不同。
-
@sascha "SAG" 代表“S随机A平均G辐射下降”。见scikit-learn.org/stable/modules/…
标签: python machine-learning scikit-learn