Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x python中SGD分类器和SGD回归器之间的区别是什么?_Python 3.x_Machine Learning_Scikit Learn - Fatal编程技术网

Python 3.x python中SGD分类器和SGD回归器之间的区别是什么?

Python 3.x python中SGD分类器和SGD回归器之间的区别是什么?,python-3.x,machine-learning,scikit-learn,Python 3.x,Machine Learning,Scikit Learn,python sklearn中SGD分类器和SGD回归器之间的区别是什么?我们还可以设置批处理大小以提高它们的性能吗 好吧,这是以名字命名的。SGD分类器是一种在分类问题中使用SGD(每次提取每个样本的损失梯度,并在过程中更新模型)进行优化(训练)的模型。它可以表示各种分类模型(SVM、logistic回归…),这些模型是用损失参数定义的。默认情况下,它表示线性支持向量机。SGD回归器是使用SGD对回归任务进行优化(训练)的模型。它基本上是一个线性模型,随着学习率的下降而不断更新 SGD{随机梯

python sklearn中SGD分类器和SGD回归器之间的区别是什么?我们还可以设置批处理大小以提高它们的性能吗

好吧,这是以名字命名的。SGD分类器是一种在分类问题中使用SGD(每次提取每个样本的损失梯度,并在过程中更新模型)进行优化(训练)的模型。它可以表示各种分类模型(SVM、logistic回归…),这些模型是用
损失
参数定义的。默认情况下,它表示线性支持向量机。SGD回归器是使用SGD对回归任务进行优化(训练)的模型。它基本上是一个线性模型,随着学习率的下降而不断更新

SGD{随机梯度下降}是机器学习算法或模型用来优化损失函数的一种优化方法

在scikit学习库中,这些模型分别是
SGDClassifier
SGDRegressor
,这可能会让您误以为SGD是一个分类器和回归器

但事实并非如此

SGD分类器
-它是由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 

谢谢,这消除了我的疑问:)但是SKB中有没有任何模块可以学习实现小批量梯度下降?由于SGD是耗时的,SGD不支持批处理通常是不正确的,尽管它确实适用于scikit学习实现;在实践中,对于大多数框架,SGD隐式地表示minibatch SGD…如果您有一个大数据集,无法放入内存,那么您应该使用,sk learn中有一个概念。我已经用示例代码更新了我的答案。