繁体   English   中英

Sklearn随机森林模型太大

[英]Sklearn random forest model is too big

来自sklearn的初学者的sklearn ,请指教。 我使用以下参数训练了RandomForestClassifier模型:

n_estimators = 32,
criterion = 'gini',
max_depth = 380,

这个参数不是随机选择的,由于某些原因它们表现出最好的性能……尽管对我自己来说很奇怪。

使用joblib.dumpcompress=3保存时,模型大小约为5.5GB

使用的数据是:

tfidf=TfidfVectorizer()
X_train=tfidf.fit_transform(X_train)

le=LabelEncoder()
le.fit(y_train)
y_train=le.fit_transform(y_train)

样本大小为4.7Mio的记录分为0.3个部分(火车占70%,测试占30%)

现在,我有一个问题,也许有人可以帮助您:

对您而言有意义的是,用于模型的参数和相对于样本大小的模型大小? 对于增加大小的模型,参数的选择可能不是最佳的(我确实知道,增加大小的主要参数是max_depth ,但结果是最好的...)

也许总体上对参数或数据准备有任何建议,如我在本示例中的经验,我注意到以下几点:1.增加n_estimators对结果几乎没有影响; 2.另一方面,增加max_depth带来了显着的改进。 例如: max_depth = 10 accuracy_score max_depth = 380为0.3- max_depth = 380 accuracy_score max_depth = 380为0.95

有什么建议,请多指教!:)

UPD。 准确性结果

火车得分:0.988 classifier.score

OOB得分: 0.953 classifier.oob_score_

测试分数: 0.935 sklearn.metrics -> accuracy_score

尝试使用min_samples_leaf而不是max_depth来限制树的深度。 这为树的不同路径和不同的估计量提供了不同的深度。 希望有可能找到一个具有较低平均深度的良好性能的模型。 我喜欢将min_samples_leaf设置为float,这意味着采样数的一小部分。 尝试在(0.0001,0.1)之间进行gridsearch

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM