Sci-Kit learn的.fit(X,y)方法是否按顺序工作,如果不是,它是如何工作的?



我正在使用Sci-Kit learn的svm库进行图像分类。我想知道当我拟合测试数据时,它是按顺序工作还是擦除以前的分类材料并重新拟合到新的测试数据。例如,如果我将100张图像拟合到分类器中,我是否可以继续然后依次拟合另外100张图像,或者SVM是否会删除它对原始100张图像执行的工作。这对我来说很难解释,所以我将提供一个例子:

为了使SVM分类器适合200张图像,我可以这样做吗:

clf=SVC(kernel='linear')
clf.fit(test.data[0:100], test.target[0:100])
clf.fit(test.data[100:200], test.target[100:200])

或者我必须这样做:

clf=SVC(kernel='linear')
clf.fit(test.data[:200], test.target[:200])

我想知道,只是因为我遇到内存错误时,试图使用。fit(X, y)与太多的图像一次。那么,是否有可能依次使用fit并向上"增量"我的分类器,以便它在技术上训练10000张图像,但一次只训练100张。

如果可以,请确认并解释?如果不可能,请解释一下?

http://scikit-learn.org/stable/developers/index.html#estimated-attributes

最后提到的属性将被覆盖第二次调用fit,不考虑之前的任何值:Fit应该是幂等的

https://en.wikipedia.org/wiki/Idempotent

所以是的,第二次调用将擦除旧模型并计算新模型。如果你懂python代码,你可以自己检查。例如:sklearn/svm/classes.py

我认为你需要小批量训练,但我没有看到支持向量机的partial_fit实现,也许是因为scikit-learn团队推荐SGDClassifier和SGDRegressor用于超过100k样本的数据集。

相关内容

  • 没有找到相关文章

最新更新