我是机器学习的新手,我正在尝试分析我的项目的分类算法。我在SGDClassifier
库中遇到了sklearn
。但很多论文都将SGD称为优化技术。有人可以解释一下SGDClassifier
是如何实施的?
答案 0 :(得分:1)
SGD确实是一种用于查找函数最小值的技术。
SGDClassifier
是一个线性分类器(默认情况下,sklearn
它是一个线性SVM),它使用SGD进行训练(即使用SGD查找损失的最小值)。根据{{3}}:
SGDClassifier是线性分类器(SVM,逻辑回归,a.o。) 接受SGD培训。
该估计器实现了随机的正则化线性模型 梯度下降(SGD)学习:估计损失的梯度 每个样本一次,模型随着更新的方式更新 减少力量计划(又称学习率)。 SGD允许小批量 (在线/核心外)学习,请参阅partial_fit方法。为了最好 结果使用默认的学习率计划,数据应该有 零均值和单位方差。
此实现适用于表示为密集或稀疏的数据 要素的浮点值数组。它适合的模型 可以用损耗参数控制;默认情况下,它适合 线性支持向量机(SVM)。
答案 1 :(得分:1)
取自SGD sikit-learn文档
loss="hinge"
:(软边距)线性支持向量机,
loss="modified_huber"
:平滑铰链损失,
loss="log"
:逻辑回归
答案 2 :(得分:0)
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)是求解器。这是一种在凸损失函数(例如(线性)支持向量机和Logistic回归)下判别线性分类器的简单有效方法。
neural_network.MLPClassifier中 sgd 的其他替代求解器是 lbfgs 和 adam
solver : {‘lbfgs’, ‘sgd’, ‘adam’}, default ‘adam’
用于权重优化的求解器。
“ lbfgs”是准牛顿方法族的优化程序
“ sgd”是指随机梯度下降。
“ adam”是指由Kingma,Diederik和Jimmy Ba提出的基于梯度的随机优化器。
有关SGDClassifier的实现的详细信息,请参见SGDClassifier文档页面。
简介:
此估计器通过随机梯度下降(SGD)学习实现正则化线性模型:一次估计每个样本的损耗梯度,并以递减的强度进度表(又称学习率)对模型进行更新。 SGD允许小批量(在线/核心外)学习
答案 3 :(得分:0)
让每个单词都以简单的英语含义隔离
随机-随机, 渐变-坡度, 下降-向下
基本上,该技术被用作“优化算法”,以寻找具有最小凸面损耗/成本函数的参数。
通过这种方法,我们可以找到对于线性分类器(SVM和Logistic回归)损失最小的直线斜率
其他执行方式:
有关更多详细信息,请访问上面的链接: https://www.geeksforgeeks.org/ml-stochastic-gradient-descent-sgd/