在scikit-learn中使用python生成器

Krn*_*Krn 0 python generator random-forest scikit-learn

我想知道是否以及如何使用python生成器作为scikit-learn分类器的.fit()函数的数据输入?由于数据量巨大,这似乎对我有意义.

特别是我即将实施随机森林方法.

问候K.

Fre*_*Foo 8

答案是不".要使用随机森林进行核心学习,你应该这样做

  1. 将数据拆分成合理大小的批次(受RAM限制;更大更好);
  2. 培养单独的随机森林;
  3. 将所有底层树木附加在其中一棵树的estimators_成员中(未经测试):

    for i in xrange(1, len(forests)):
        forests[0].estimators_.extend(forests[i].estimators_)`
    
    Run Code Online (Sandbox Code Playgroud)

(是的,这很hacky,但是还没有找到解决这个问题的方法.请注意,对于非常大的数据集,只需要采样一个适合大机器RAM的训练样例而不是全部训练另一个选择是切换到使用SGD的线性模型,那些实现了一种partial_fit方法,但显然它们在他们可以学习的功能方面受到限制.)