如何使RandomForestClassifier更快?

时间:2017-04-26 17:09:55

标签: python-3.x pandas machine-learning sentiment-analysis

我正试图在kaggle网站上实施一个词模型包,其中包含大约1M原始数据的Twitter情绪数据。我已经清理了它,但在最后一部分,当我将我的特征向量和情绪应用于随机森林分类器时,它花了很多时间。我的代码......

from sklearn.ensemble import RandomForestClassifier
forest = RandomForestClassifier(n_estimators = 100,verbose=3)
forest = forest.fit( train_data_features, train["Sentiment"] )

train_data_features是1048575x5000稀疏矩阵。我试图将其转换为数组,同时表示存储器错误。

我在哪里做错了?有人可以建议我一些来源或其他方式更快地完成它吗?我绝对是机器学习的新手,没有那么多的编程背景,所以一些指南将适应。

非常感谢你提前

1 个答案:

答案 0 :(得分:2)

实际上解决方案非常简单:获得强大的机器并将其并行运行。默认情况下,RandomForestClassifier使用单个线程,但由于它是完全独立模型的集合,您可以并行训练这100个tress中的每一个。只需设置

forest = RandomForestClassifier(n_estimators = 100,verbose=3,n_jobs=-1)

使用所有核心。你也可以限制max_depth,这将加快速度(最终你可能需要这种方式,因为RF可以过度配合而不受任何深度限制)。