使随机森林估计器与决策树完全相同

数据挖掘 机器学习 随机森林 决策树 大车
2021-09-17 03:04:34

这个想法是使随机森林中的一棵树完全等同于决策树。

首先,我们加载所有库,拟合决策树并绘制它。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.style.use('ggplot')
%matplotlib inline
import random
from pprint import pprint
import pdb
random.seed(0)
np.random.seed(0)
from sklearn.tree import DecisionTreeClassifier
from sklearn import tree
from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestClassifier

data = load_iris()

dtc = DecisionTreeClassifier(random_state=0)
dtc.fit(data['data'].squeeze(),data.target)

tree.plot_tree(dtc)

决策树

然后我们对随机森林做同样的事情

rf  = RandomForestClassifier(n_estimators=1,max_features=None,random_state=0)
rf.fit(data['data'].squeeze(),data.target)
tree.plot_tree(rf.estimators_[0])

随机森林树

我的问题:

是否可以使随机森林的第一棵树和决策树完全相同?

1个回答

您需要bootstrap=False在随机森林中设置以禁用子采样。(我最初发表评论是因为我预计会有更多障碍[除了你已经编码random_state的 s 和max_features=None],但我想没有任何障碍!)

一般来说,您可能不想这样做;通过去除所有随机性,使第一棵树与 DecisionTreeClassifier 相同,您最终会得到所有树都相同,并且随机森林失去了它的用处。