Sklearn SGDClassifier部分拟合

Sklearn SGDClassifier部分拟合,第1张

Sklearn SGDClassifier部分拟合

我终于找到了答案。您需要 在每次迭代之间 重新 整理训练数据 ,因为在实例化模型时设置 shuffle = True 不会在使用
partial_fit 时重新 整理 数据(仅适用于 fit
)。注意:在sklearn.linear_model.SGDClassifier页面上找到此信息将很有帮助。

修改后的代码如下:

from sklearn.linear_model import SGDClassifierimport randomclf2 = SGDClassifier(loss='log') # shuffle=True is useless hereshuffledRange = range(len(X))n_iter = 5for 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))


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5649363.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存