我正在尝试使用RandomForestClassifier
将sklearn-porter
模型导出到Java中,并且该模型内存不足。我如何解决这个问题? Linux进程增长到大约10 + G,然后失败-该计算机有24G可用。
培训集约有250万个元素,随着我们针对更多的课程进行分类,培训规模可能会增加。该模型具有20个功能(可能会减少)。目前,我们已经让树木越深越好。我不希望限制树的深度以使其导出到Java。
相关信息:Darius Morawiec's response中的Exporting python sklearn models to production (java/c++)
代码:
# train the forest
rfcf.fit(x_train, y_train)
# export
porter = Porter(rfcf, language='java')
output = porter.export(embed_data=True)
print(output)
顺便说一句,我在将机器内存提高到52GB之后正在重试。
更新:运行约30分钟后,它再次因MemoryError失败。
顺便说一句,我还要补充一点,在具有24G RAM的计算机上,通过sklean2pmml以相同的PMML格式成功导出了相同的模型。也可以在合理的时间(约30分钟)内对模型进行酸洗,但是这些文件很大(2-6 GB。)