首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在python中SGD分类器和SGD回归器有什么不同?

在python中SGD分类器和SGD回归器有什么不同?
EN

Stack Overflow用户
提问于 2019-02-15 14:50:11
回答 3查看 1.6K关注 0票数 1

在python sklearn中,SGD分类器和SGD回归器有什么不同?另外,我们可以设置批处理大小以提高性能吗?

EN

回答 3

Stack Overflow用户

发布于 2019-02-15 15:53:17

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

票数 1
EN

Stack Overflow用户

发布于 2019-02-15 16:35:25

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

在scikit-learn库中,这些模型是SGDClassifierSGDRegressor,这可能会让你混淆,认为SGD是一个分类器和回归器。

但事实并非如此。

SGDClassifier -它是一个由SGD SGDRegressor优化的classifier -它是一个由SGD优化的regressor

随机梯度下降{SGD}不支持批量,它与{ batch } 梯度下降不同,它一次只接受一个训练示例。

使用sklearn部分拟合的示例

代码语言:javascript
运行
复制
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))
票数 1
EN

Stack Overflow用户

发布于 2019-05-07 16:01:06

分类器预测某个数据属于哪个类。

代码语言:javascript
运行
复制
this picture is a cat (not a dog)

Regressor通常预测它属于哪个类的概率

代码语言:javascript
运行
复制
this picture with 99% of probability is a cat 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54704015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档