R语言 树熵

R语言 树熵

R编程中的熵据说是对数据中存在的污染物或模糊性的衡量。它是通过决策树分割数据时的一个决定性成分。一个未分割的样本的熵等于零,而一个平均分割部分的样本的熵等于一。在选择合适的树时,需要考虑的两个主要因素是:信息增益(IG)和熵。

公式:

R编程中的树熵

其中,p(x)是概率

例如,考虑一个决策树的学校数据集,其熵需要计算。

可用的图书馆 教练加入 家长的教育 学生的表现
未受教育 不好
没有 未受过教育的 不好
没有 没有 受过教育
没有 没有 未受过教育的 不好

因此,我们可以清楚地看到,学生的成绩受到三个因素的影响–可用的图书馆、加入的教练和父母的教育。利用这三个变量的信息可以构建一个决策树来预测学生的成绩,因此被称为预测变量。拥有更多信息的变量被认为是决策树的更好的分割者。

因此,为了计算父节点–学生成绩的熵,可以使用上述熵的公式,但需要先计算概率。

在学生成绩一栏中,有四个数值,其中两个成绩好,两个成绩差。

R编程中的树熵

因此,父母的总熵值可以计算如下

R编程中的树熵

使用熵的信息增益

信息增益是一个参数,用于决定决策树中每个节点上可用于分割数据的最佳变量。因此,可以计算每个预测变量的IG,具有最高IG的变量将赢得根节点分割的决定性因素的竞赛。

公式

Information Gain(IG) = Entropy parent – (weighted average * Entropy children )

现在要计算加入教练的预测变量的IG,首先要根据这个变量来分割父节点。

R编程中的树熵

现在有两个部分,首先单独计算它们的熵。

左边部分的熵

有两种类型的输出可用–好的和坏的。在左边的部分,总共有三个结果,两个是坏的,一个是好的。因此, **P 好 **和 **P 坏 **又被计算为:。

R编程中的树熵

右边部分的熵

右边只有一个成分,即表现不好。因此,概率变为1。而熵变成了0,因为只有一个类别的输出可以归属。

用子节点的熵计算加权平均数

R编程中的树熵

左边的子节点有3个结果,右边的节点有1个。而左节点 的熵已被计算为0.9,右节点 的熵为0。

现在保持上述公式中的数值,我们得到这个例子的加权平均数:

R编程中的树熵

计算IG

现在将计算出的加权平均数放入IG公式中,就可以得到 “教练加入 “的IG。

IG(coaching joined) = Entropy parent - (weighted average * Entropychildren)
IG(coaching joined) = 0.811 - 0.675 = 0.136

使用相同的步骤和公式计算、比较其他预测变量的IG,因此选择IG最高的变量在每个节点上进行数据分割。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程