我可以使用包含相同树的 RandomForestClassifier 创建随机森林吗?
数据挖掘
Python
分类
scikit-学习
随机森林
决策树
2022-02-19 11:58:54
1个回答
您想创建一个所有决策树都相同的随机森林。(我相信您正在尝试将其作为一种教育练习,而不是严肃的事情。:))
你试图通过设置来做到这一点,random_state并引用了我的回答
确实,正如您所发现的,我的回答并不完全正确。
我已对其进行编辑以添加
虽然这消除了训练的随机性成分,但决策树仍然会有所不同。问题是 sklearn 集成根据给定的随机状态为每个孩子生成一个新的随机种子。他们不通过相同的
random_state。
_set_random_states通过检查ensemble 基本模块中的方法,您可以看到这种情况,特别是这一行,它在 ensemble 的子模块中传播random_state。
如您所见,sklearn 使用random_state您提供的 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,而是特定于任何 sklearn 集成。
抱歉,我对您引用的问题的回答不正确。如果需要,可以使用随机森林实现。那是完全同质的。
其它你可能感兴趣的问题