决策树的唯一性 sklearn

我对于决策树和随机森林分类器有一些问题。

问题1:训练后的决策树是否唯一?

我认为它应该是唯一的,因为它在每次分裂时最大化信息增益。现在,如果它是唯一的,为什么决策树分类器中有random_state参数?因为它是唯一的,所以每次都可以重现。因此,决策树是唯一的,不需要random_state参数。

问题2:决策树实际上预测什么?

在研究随机森林算法时,我读到它会平均每个类别的概率来自其各个树。但是据我所知,决策树预测的是类别而不是每个类别的概率。


回答:

即使不查看代码,你也会在文档中看到这个说明

在每次分裂时,特征总是随机排列。因此,即使在相同的数据集和max_features=n_features的情况下,如果在搜索最佳分裂过程中枚举的多个分裂的标准改进相同,最佳找到的分裂也可能有所不同。为了在拟合过程中获得确定性行为,必须固定random_state。

对于splitter='best',这种情况发生在这里

# 随机抽取一个特征f_j = rand_int(n_drawn_constants, f_i - n_found_constants,               random_state)

关于你的另一个问题,请阅读这个

只需构建树,使得叶节点不仅包含单一的类别估计,还包含概率估计。这可以通过运行任何标准的决策树算法,并让大量数据通过它,并计算在每个叶节点中预测标签正确的时间比例来实现;这就是sklearn所做的。这些有时被称为“概率估计树”,尽管它们不能提供完美的概率估计,但它们可能是有用的。在21世纪初,有大量的工作研究它们,有时使用更复杂的方法,但sklearn中的简单方法在森林中使用时还是不错的。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注