决策树的唯一性 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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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