巨大的模型:减少记忆的技巧?

时间:2018-06-14 22:47:59

标签: machine-learning scikit-learn out-of-memory random-forest

我有100种不同的随机森林模型。它们中的每一个平均大小为300 MB(每个都训练超过300个类)。我正在使用随机森林的sklearn(v0.19.1)实现。这导致超过30 GB的内存使用。我需要内存中的所有模型,并尝试减少树的深度,但精度的降低是相当大的。有没有人有任何想法和/或建议(实施?)可以帮助我减少内存占用?

1 个答案:

答案 0 :(得分:1)

我没有任何先进而优雅的解决方案。但是由于你使用RF,总会有一个解决办法:你可以用不同的随机种子一个接一个地训练100个DT(或RF)模型,并将每个模型存储在磁盘上(存储后从内存中擦除)。这样,在任何给定时间内,内存中最多只有300 MB。要进行预测,您需要逐个读取模型和预测,并平均预测概率。您可以将此提议概括为在每个此类模型中使用N(N = 1..5)树来使用一些适度的内存但减少实际模型的数量