首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SGDClassifier小型批次学习和学习速率计划

SGDClassifier小型批次学习和学习速率计划
EN

Stack Overflow用户
提问于 2013-09-20 12:28:27
回答 1查看 2.4K关注 0票数 3

当我使用SGDClassifier方法来训练它时,我试图拼凑出partial_fit是如何选择它的学习速度的。

也就是说,我的主要学习回路是这样的:

代码语言:javascript
复制
from sklearn.linear_model import SGDClassifier
m = SGDClassifier(n_iter=1, alpha=0.01)
n_iter = 40
t0 = time.time()
for i in range(n_iter):
    for fname in files:
        X, y = load_next_batch(fname)
        m.partial_fit(X, y, classes = [0, 1])
    print "%d:  valid-error: %f  (time: %fs)" % (i, 1.0-m.score(Xvalid, yvalid), time.time() - t0)

现在,由于我通过整个训练集40次,我想退火我的学习速度随着时间的推移。如果我使用fit而不是部分拟合,我的理解是这将自动发生(除非我修改learning_rate参数)。

然而,我不清楚这是如何发生时,使用部分拟合。浏览代码也无济于事。有人能说明我如何在我的环境中达到退火学习率吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-20 13:03:39

fit在内部使用partial_fit,因此学习速率配置参数应用于fitpartial_fit。默认的退火计划是eta0 / sqrt(t)eta0 = 0.01

编辑:这是不正确的,从注释中可以看到SGDClassifier的实际默认日程是:

1.0 / (t + t0)中,t0是启发式设置的,t是过去看到的样本数。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18916826

复制
相关文章

相似问题

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