具有非分类数据的决策树中的节点如何发生分裂?

数据挖掘 scikit-学习 决策树
2021-09-26 06:30:40

根据网站(:http ://dataaspirant.com/2017/01/30/how-decision-tree-algorithm-works/ ),这些值是随机选择的: 在此处输入图像描述

我认为创建决策树的任何优化方式都不是这种情况。在此图像(不同示例)中,根节点的值为 2.45: 标记为红色

这个值是像网站上解释的那样随机选择的吗?如果不是,并且该值不是随机选择的,那么它是如何计算的?

3个回答

不,我不认为分支分离的值是随机选择的。相反,为每个类别计算加权平均值,并选择具有最高加权平均值的类别作为根节点。这也称为信息增益考虑这个数据集

数据集. 在此处输入图像描述

考虑上图,这里选择outlook作为根节点,那么outlook是如何选择作为根节点的呢?

首先,我们计算数据的总熵。让我们说它的0.95。现在为了选择正确的根节点,我们将找到所有子类别的加权平均值。这里有4个4类,所以我们会得到4个加权熵平均值。假设它们是 0.3、0.2、0.4、0.8。现在我们将从总熵中减去个体加权熵平均值。所以我们会得到 (0.95-0.3), (0.95-0.2), (0.95-0.4), (0.95-0.8)。在所有三个类别中,哪个类别具有最高值,该类别将被选为根节点。这4个值是每个类别的信息增益,即哪个类别具有最高的信息增益,我们将选择它作为根节点。在我们的例子中,它的前景类别/功能。希望它有所帮助

检查这个以获得更清晰

在节点级别选择用于拆分数据的值是为了最小化代表数据中的熵或混沌的基尼杂质指数。它选择最能区分你的类的值。

举个例子:

你有10个人。唯一可用的变量是年龄。您正在预测该人是否患有某种疾病。在做了一些EDA之后,您注意到在20-40之间,您的两个类,再次假设它的二元分类,同样存在。并且恰好在56岁时,您会得到 4个 10同时,在 56 人以下,您在该范围内的班级分布均等。

在考虑将节点拆分为哪个值时,您的树将计算信息增益或基尼杂质,然后将您的人口拆分为 2 个叶子,其中在这 2 个叶子中尽可能地最小化熵。同样,您将有一个叶子,其中有 4一个0,而另一个叶子将有 3 个0和 2个 1

用更简单的术语来说,当你在一个节点中分割种群时,你会尝试让叶子尽可能地纯净,而最纯净的意思是只包含一个类。这就是价值的决定方式。

希望这是有道理的。

分裂实际上发生在迷你基尼系数或熵上。看看你是否有数值首先按升序排列值,假设我们有从 60 到 220 的值。按升序排列,首先它计算 >60 并且小于 <65 ,依此类推。并计算每个拆分的 gini 并进行最小拆分。这不是随机的。