当我使用SGDClassifier方法来训练它时,我试图拼凑出partial_fit是如何选择它的学习速度的。
也就是说,我的主要学习回路是这样的:
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参数)。
然而,我不清楚这是如何发生时,使用部分拟合。浏览代码也无济于事。有人能说明我如何在我的环境中达到退火学习率吗?
发布于 2013-09-20 13:03:39
fit在内部使用partial_fit,因此学习速率配置参数应用于fit和partial_fit。默认的退火计划是eta0 / sqrt(t)和eta0 = 0.01。
编辑:这是不正确的,从注释中可以看到SGDClassifier的实际默认日程是:
1.0 / (t + t0)中,t0是启发式设置的,t是过去看到的样本数。
https://stackoverflow.com/questions/18916826
复制相似问题