python sklearn中的SGD分类器和SGD回归器有什么区别?我们还可以设置批处理大小以提高它们的性能吗?
答案 0 :(得分:1)
好吧,这就是名字。 SGD分类器是在分类问题中使用SGD(每次采样损失的梯度并一次更新模型)进行优化(训练)的模型。它可以表示使用loss
参数定义的各种分类模型(SVM,逻辑回归...)。默认情况下,它表示线性SVM。 SGD Regressor是使用SGD对回归任务进行优化(训练)的模型。它基本上是一个线性模型,随着学习速率的下降而不断更新。
答案 1 :(得分:1)
SGD {Stochastic Gradient Descent}是一种优化方法,机器学习算法或模型用于优化损失函数。
在scikit-learn库中,这些模型SGDClassifier
和SGDRegressor
可能会使您误以为SGD是分类器和回归器。
但事实并非如此。
SGDClassifier
-它是由SGD优化的classifier
SGDRegressor
-它是由SGD优化的regressor。
随机梯度下降 {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))
答案 2 :(得分:0)
分类器预测一些数据属于哪个类。
this picture is a cat (not a dog)
回归器通常会预测其所属类别的概率
this picture with 99% of probability is a cat