python sklearn中的SGD分类器和SGD回归器之间有什么区别?另外,我们可以设置批处理大小以使其更快的性能吗?
好吧,它是名称。SGD分类器是一种使用SGD优化(训练)的模型(一次在分类问题中一次更新每个样本的丢失,并且该模型沿途更新)。它可以代表使用loss
参数定义的各种分类模型(SVM,逻辑回归...)。默认情况下,它表示线性SVM。SGD回归器是一种使用SGD进行回归任务的SGD优化(训练)的模型。基本上,这是一个线性模型,并以腐烂的学习率进行更新。
sgd {随机梯度下降}是一种优化方法,它通过机器学习算法或模型来优化损失函数。
在Scikit-Learn库中,这些模型SGDClassifier
和SGDRegressor
,可能会使您认为SGD是分类器和回归器。
但事实并非如此。
SGDClassifier
-这是由SGD优化的分类器 SGDRegressor
-这是由SGD优化的回归剂。
随机梯度下降 {sgd}不支持批处理,它一次进行单个训练示例,与{batch} 梯度>渐变下降。
使用Sklearn部分拟合的示例
from sklearn.linear_model import SGDClassifier
import random
clf2 = SGDClassifier(loss='log') # shuffle=True is useless here
shuffledRange = range(len(X))
n_iter = 5
for n in range(n_iter):
random.shuffle(shuffledRange)
shuffledX = [X[i] for i in shuffledRange]
shuffledY = [Y[i] for i in shuffledRange]
for batch in batches(range(len(shuffledX)), 10000):
clf2.partial_fit(shuffledX[batch[0]:batch[-1]+1], shuffledY[batch[0]:batch[-1]+1], classes=numpy.unique(Y))
分类器预测哪个类属于某些数据。
this picture is a cat (not a dog)
回归器通常可以预测其属于哪个类的概率
this picture with 99% of probability is a cat