首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >随机森林在线学习

随机森林在线学习
EN

Data Science用户
提问于 2016-08-04 14:26:29
回答 1查看 3.8K关注 0票数 1

我可以用随机森林进行在线学习吗?我有几百万个数据点,分类器无法完成交叉验证步骤。

我能把它一分为二吗?

当前代码:

代码语言:javascript
复制
X_train, y_train, X_val, y_val, X_test, y_test = load_dataset()

   print('Planting trees...')
   clf = RandomForestClassifier(
       n_estimators=50,
       max_depth=None,
       min_samples_split=1,
       random_state=0
   )

   print('Growing trees...')
   classifier = clf.fit(X_train, y_train)

   # see how we did
   print('Testing trees...')
   scores = cross_val_score(classifier, X_test, y_test)
   print(scores)
   print('accuracy: %d' % (scores.mean()))

我能把它改成这样的吗?

代码语言:javascript
复制
for chunk in df:
     clf.fit(...)
     cross_validate...
EN

回答 1

Data Science用户

发布于 2016-08-04 17:57:24

没有什么能真正做到在线学习。为了使科学学习算法支持在线学习,它必须提供partial_fit函数,而RandomForestClassifier不提供这种功能。我认为您给出的代码只会在它当前正在查看的数据子集上重新填充整个森林。

您可以尝试的一种方法是初始化RandomForestClassifier,并将warm_start设置为True。然后,在每次调用fit时,随机林将向集合中添加一组新的树。您可能必须减少集合中的估计器的数量,因为您最终得到的估计器的数量将是您用循环遍历的块数初始化的数目。

这将不会完全相同的方式,就像你要训练整个合奏在一个真正的在线方式,但它可能是足够接近你的目的。

票数 2
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/13195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档