如何让RandomForestClassifier更快?

问题描述 投票:0回答:1

我正在尝试从 kaggle 网站实现词袋模型,其中包含大约 100 万个原始的 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 稀疏矩阵。我尝试将其转换为数组,但这样做表明内存错误。

我哪里做错了?有人可以建议我一些来源或其他更快的方法吗?

python-3.x machine-learning scikit-learn random-forest
1个回答
13
投票

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

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

使用你所有的核心。您还可以限制

max_depth

 ,这会加快速度(最终您可能会需要这种方式,因为 RF 可能会严重过度拟合,而对深度没有任何限制)。 

© www.soinside.com 2019 - 2024. All rights reserved.