【发布时间】:2017-11-26 14:16:07
【问题描述】:
我有一个包含训练数据的大文件。我很担心,当我使用这段代码时:
clf = RandomForestClassifier()
for chunk in reader:
clf.fit(chunk, target)
clf 会为所有块生成模型还是只为当前块生成模型?对于增量学习,我应该只使用带有 partial_fit() 方法的分类器吗?我应该如何以这种方式规范化训练数据(为整个数据构建规范化器,而不仅仅是当前块)?
【问题讨论】:
-
在 scikit 中,对 fit() 的新调用将忘记之前的
fit()。所以它只会为最后一个fit()制作模型。你需要partial_fit()。 scikit-learn.org/stable/modules/… -
@VivekKumar 这是否也适用于 tfidf 矢量化器类?
-
@Coldspeed 否。如果数据太大,则 advised by the sklearn authors 使用 HashingVectorizer 代替。
-
这不是一个简单的问题,构造函数中有warm_start参数,但是当你适应新的数据块时,会抛出“UserWarning:不增加n_estimators的热启动拟合不适合新树”。并且可以适应不同的森林,然后附加他们的估计器stackoverflow.com/questions/28489667/…,但我不确定这是否能正常工作。有人试过吗?
标签: python scikit-learn