繁体   English   中英

Sci-Kit学习的.fit(X,y)方法是否按顺序工作,如果没有,该如何工作?

[英]Does Sci-Kit learn's .fit(X,y) method work sequentially, if not how does it work?

我正在使用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)时遇到内存错误。 因此可以顺次使用拟合并向上“递增”我的分类器,以便对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中

我认为您需要进行小批量培训,但是我看不到SVM的partial_fit实现,这可能是因为scikit-learn团队针对大小超过100k的数据集建议使用SGDClassifier和SGDRegressor。 http://scikit-learn.org/stable/tutorial/machine_learning_map/ ,尝试为描述minibatch使用它们在这里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM