【发布时间】:2015-10-26 19:56:35
【问题描述】:
我正在 Python 上做一些机器学习任务。我需要构建 RandomForest,然后构建一个图表,该图表将显示训练和测试样本的质量如何取决于随机森林中的树木数量。每次有一定数量的树都需要建立一个新的随机森林吗?或者我可以以某种方式迭代地添加树(如果可能的话,你能给出代码示例如何做到这一点)?
【问题讨论】:
标签: python scikit-learn random-forest
我正在 Python 上做一些机器学习任务。我需要构建 RandomForest,然后构建一个图表,该图表将显示训练和测试样本的质量如何取决于随机森林中的树木数量。每次有一定数量的树都需要建立一个新的随机森林吗?或者我可以以某种方式迭代地添加树(如果可能的话,你能给出代码示例如何做到这一点)?
【问题讨论】:
标签: python scikit-learn random-forest
您可以使用RandomForestClassifier 的warm start 参数来做到这一点。
这是一个可以适应您的特定需求的示例:
errors = []
growing_rf = RandomForestClassifier(n_estimators=10, n_jobs=-1,
warm_start=True, random_state=1514)
for i in range(40):
growing_rf.fit(X_train, y_train)
growing_rf.n_estimators += 10
errors.append(log_loss(y_valid, growing_rf.predict_proba(X_valid)))
_ = plt.plot(errors, '-r')
这是我得到的:
【讨论】:
n_estimators更正确的方法是使用growing_rf.set_params(n_estimators=...)。