SGDClassifier 是一个线性分类器,它通过随机梯度下降 (SGD) 学习实现正则化线性模型
其他分类器:
classifiers = [
("ASGD", SGDClassifier(average=True, max_iter=100)),
("Perceptron", Perceptron(tol=1e-3)),
("Passive-Aggressive I", PassiveAggressiveClassifier(loss='hinge',
C=1.0, tol=1e-4)),
("Passive-Aggressive II", PassiveAggressiveClassifier(loss='squared_hinge',
C=1.0, tol=1e-4)),
("SAG", LogisticRegression(solver='sag', tol=1e-1, C=1.e4 / X.shape[0]))
]
随机梯度下降 (sgd) 是一个求解器。在凸损失函数(如(线性)支持向量机和逻辑回归)下对线性分类器进行判别学习是一种简单有效的方法。
neural_network.MLPClassifier 中 sgd 的其他替代求解器是 lbfgs 和 adam
solver : {‘lbfgs’, ‘sgd’, ‘adam’}, default ‘adam’
权重优化的求解器。
‘lbfgs’是准牛顿方法家族中的一个优化器
‘sgd’指的是随机梯度下降。
“adam”指的是由 Kingma、Diederik 和 Jimmy Ba 提出的基于随机梯度的优化器
关于SGDClassifier的实现细节可以阅读@SGDClassifier文档页面。
简而言之:
此估计器使用随机梯度下降 (SGD) 学习实现正则化线性模型:损失的梯度是一次估计每个样本,并且模型会随着强度递减的时间表(也称为学习率)不断更新。 SGD 允许小批量(在线/核外)学习