为什么样本数小于我的决策树中的值数?

数据挖掘 随机森林 scikit-学习 决策树
2021-10-01 15:20:23

我正在使用 scikit-learn RandomForestClassifier 来解决分类问题。仔细查看其中一棵树时,我注意到根部的样本数为 662,但第一类有 507 个实例,第二类有 545 个。发生了什么事还是我理解错了什么?样本数量实际上是唯一样本的数量吗?因为我使用了引导聚合,所以有很多样本被多次选择? 决策树图片

1个回答

是的,它似乎显示了独特的样本,其他样本已被引导抽样复制。

有 0.632 规则 - 当你有 N 个项目并且你随机抽取一个大小为 N 并替换的样本(如 bootstrap 所做的那样),你只能从 N 中获得 63.2% 的样本,其余的都是重复的。

这与您所看到的大致相符:0.632 * (507+545) = 665 个唯一样本。

您也可以使用一些 Python 代码进行尝试:

samples = np.arange(507 + 545)

bootstrap_sample = np.random.choice(samples, size=len(samples), replace=True)

print(len(np.unique(bootstrap_sample)))

这总是打印接近 665 的值。