问题描述
这是有关随机森林分类如何工作的示例数据集。我知道通过选择随机的k点然后取某种平均值来构建多个决策树吗?
但是在这种情况下,我有10棵树,带有10个不同的数据点,如果我要选择随机的k个点,它将看起来像这样:
x_train = [10,20,30,40,50,60,70,80,90,100]
y_train = [0,1,1]
object = RandomForestClassifier(n_estimators=10,criterion='entropy')
object.fit(x_train,y_train)
然后我们制作一个图,然后将random_k_1拆分,以使每个拆分中的类别最大化。
那我们该怎么办?喜欢采取某种平均水平?如果是,那么我们应该怎么做呢,我们只有0,1作为y ^?对不起我无法解释这个问题,我感到很抱歉,我无法描述这个问题。
random_k_1 = [[10,0],[30,1],[70,1]]
解决方法
简而言之,随机森林使用决策树进行工作。它使用一种称为“ Bootstrapping”或“ Bagging”的技术来减少模型中的差异。
采用了许多决策树(在sklearn实现中,由n_estimators
定义)。这些树中的每一个都可以在数据的随机子样本上进行训练。这试图使每棵树尽可能独立于其他树。一旦对它们进行了训练,就可以使用汇总技术。
要引用文档中的内容:
输入样本的预测类概率计算为 森林中树木的平均预测类别概率。的 一棵树的分类概率是 叶子中的同一个类。
然后,预测只是具有最高平均类别概率的类别。
这种聚集降低了模型中的方差,因此我们将转向低方差低偏差的最佳点。
我相信您的困惑在这里。目标标签y的汇总未完成。汇总是针对各种决策树的输出进行的。
为简化起见,请考虑以下示例。
您采用11个估计量,即RandomForest模型中的11个决策树。 y只能是[0,1]整数。 这些决策树中有6个预测y为1,其中5预测为0。在这种情况下,您选择整个森林的预测为1。