我对决策树和随机森林分类器有一些疑问。
问题1:经过训练的决策树是否独一无二?
我认为它应该是唯一的,因为它最大化了每次分割的信息增益。现在,如果它是唯一的,为什么在决策树分类器中有random_state参数。因为它是唯一的,所以它每次都可以重现。所以不需要random_state,因为决策树是唯一的。
问题2:决策树实际预测了什么?
在通过随机森林算法时,我读到它平均每个类的概率来自其单独的树,但据我所知,决策树预测类不是每个类的概率。
答案 0 :(得分:0)
即使没有查看代码,您也会在文档中看到this note:
每次拆分时都会随机置换功能。因此,即使使用相同的训练数据和max_features = n_features,如果在搜索最佳分割期间枚举的几个分割的标准的改进相同,则最佳找到的分割可以变化。为了在拟合期间获得确定性行为,必须修复random_state。
对于splitter='best'
,这种情况正在发生here:
# Draw a feature at random
f_j = rand_int(n_drawn_constants, f_i - n_found_constants,
random_state)
关于您的其他问题,请阅读this:
...
只需构建树,这样叶子不仅包含单个类估计,还包含概率估计。这可以简单地通过运行任何标准决策树算法,并通过它运行一堆数据并计算每个叶子中预测标签正确的时间部分来完成;这就是sklearn所做的。这些有时被称为“概率估计树”,虽然它们没有给出完美的概率估计,但它们可能是有用的。在00年代早期,有一些工作正在调查它们,有时采用更有趣的方法,但sklearn中的简单方法适合在森林中使用。
...