我正试图在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稀疏矩阵。我试图将其转换为数组,同时表示存储器错误。
我在哪里做错了?有人可以建议我一些来源或其他方式更快地完成它吗?我绝对是机器学习的新手,没有那么多的编程背景,所以一些指南将适应。
非常感谢你提前
答案 0 :(得分:2)
实际上解决方案非常简单:获得强大的机器并将其并行运行。默认情况下,RandomForestClassifier使用单个线程,但由于它是完全独立模型的集合,您可以并行训练这100个tress中的每一个。只需设置
forest = RandomForestClassifier(n_estimators = 100,verbose=3,n_jobs=-1)
使用所有核心。你也可以限制max_depth
,这将加快速度(最终你可能需要这种方式,因为RF可以过度配合而不受任何深度限制)。