发布于 2018-07-06 23:23:33
您想要创建一个随机林,其中所有决策树都是相同的。(我相信你正试图把这作为一种教育活动,而不是严肃的事情。:)
你试图通过设置random_state来做到这一点,并引用了我的答案
事实上,正如你所发现的,我的答案并不完全正确。
我编辑了它以添加
虽然这消除了训练的随机性成分,但决策树仍然是不同的。问题是,sklearn组合根据给出的随机状态为每个孩子生成一个新的随机种子。它们不传递相同的
random_state。您可以通过从集成基模块(特别是_set_random_states)中检查这条线方法来看到这种情况,后者将random_state传播到组件的子模块中。
如您所见,sklearn使用给RandomForest的RandomForest为每个子节点创建新的随机状态,
for key in sorted(estimator.get_params(deep=True)):
if key == 'random_state' or key.endswith('__random_state'):
to_set[key] = random_state.randint(MAX_RAND_SEED)因此,他们将是不同的。之所以这样做,大概是因为异质性是使集合强大的原因。请注意,这并不是特定于RandomForest,而是任何一个滑雪组合。
对不起,我对你所提问题的回答不正确。如果需要,可以使用随机林实现。那是完全同质的。
https://datascience.stackexchange.com/questions/34038
复制相似问题