0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Amro通过一个简单的二元分类决策树解释信息熵和信息增益这两个概念

zhKF_jqr_AI 来源:未知 作者:李倩 2018-04-17 16:30 次阅读

StackOverflow人气答主(top 0.12%)Amro通过一个简单的二元分类决策树例子,简明扼要地解释了信息熵和信息增益这两个概念。

为了解释熵这个概念,让我们想象一个分类男女名字的监督学习任务。给定一个名字列表,每个名字标记为m(男)或f(女),我们想要学习一个拟合数据的模型,该模型可以用来预测未见的新名字的性别。

现在我们想要预测“Amro”的性别(Amro是我的名字)。

第一步,我们需要判定哪些数据特征和我们想要预测的目标分类相关。一些特征的例子包括:首/末字母、长度、元音数量、是否以元音结尾,等等。所以,提取特征之后,我们的数据是这样的:

我们可以构建一棵决策树,一棵树的例子:

长度<7

| 元音数量<3: 男

| 元音数量>=3

| | 元音结尾=1: 女

| | 元音结尾=0: 男

长度>=7

| 长度=5: 男

基本上,每个节点代表在单一属性上进行的测试,我们根据测试的结果决定向左还是向右。我们持续沿着树走,直到我们到达包含分类预测的叶节点(m或f)。

因此,如果我们运行这棵决策树判定Amro,我们首次测试“长度<7?”答案为是,因此我们沿着分支往下,下一个测试是“元音数量<3?”答案同样为真。这将我们导向标签为m的叶节点,因此预测是男性(我碰巧是男性,因此这棵决策树的预测正确)。

决策树以自顶向下的方式创建,但问题在于如何选择分割每个节点的属性?答案是找到能将目标分类分割为尽可能纯粹的子节点的特征(即:只包含单一分类的纯粹节点优于同时包含男名和女名的混合节点)。

这一纯粹性的量度称为信息。它表示,给定到达节点的样本,指定一个新实例(名字)应该被分类为男性或女性的期望的信息量。我们根据节点处的男名分类和女名分类的数量计算它。

另一方面,熵是不纯粹性的量度(与信息相反)。对二元分类而言,熵的定义为:

Entropy = - p(a)*log(p(a)) - p(b)*log(p(b))

这一二元熵函数的图像如下图所示。当概率为p=1/2时,该函数达到其最大值,这意味着p(X=a)=0.5或类似的p(X=b)=0.5,即50%对50%的概率为a或b(不确定性最大)。当概率为p=1或p=0时(完全确定),熵函数达到其最小值零(p(X=a)=1或p(X=a)=0,后者意味着p(X=b)=1)。

当然,熵的定义可以推广到有N个离散值(超过2)的随机变量X:

(公式中的log通常为以2为底的对数)

回到我们的名字分类任务中,让我们看一个例子。想象一下,在构建决策树的过程中的某一点,我们考虑如下分割:

以元音结尾

[9m,5f]

/ \

=1 =0

------- -------

[3m,4f] [6m,1f]

如你所见,在分割前,我们有9个男名、5个女名,即P(m)=9/14,P(f)=5/14。根据熵的定义,分割前的熵为:

Entropy_before = - (5/14)*log2(5/14) - (9/14)*log2(9/14) = 0.9403

接下来我们将其与分割后的熵比较。在以元音结尾为真=1的左分支中,我们有:

Entropy_left = - (3/7)*log2(3/7) - (4/7)*log2(4/7) = 0.9852

而在以元音结尾为假=0的右分支中,我们有:

Entropy_right = - (6/7)*log2(6/7) - (1/7)*log2(1/7) = 0.5917

我们以每个分支上的实例数量作为权重因子(7个实例向左,7个实例向右),得出分割后的最终权重:

Entropy_after = 7/14*Entropy_left + 7/14*Entropy_right = 0.7885

现在比较分割前后的权重,我们得到信息增益的这一量度,也就是说,基于特定特征进行分割后,我们获得了多少信息:

Information_Gain = Entropy_before - Entropy_after = 0.1518

你可以如此解释以上运算:通过以“元音结尾”特征进行分割,我们得以降低子树预测输出的不确定性,降幅为一个较小的数值0.1518(单位为比特,比特为信息单位)。

在树的每一个节点,为每个特征进行这一运算,以贪婪的方式选择可以取得最大信息增益的特征进行分割(从而偏好产生较低不确定性/熵的纯分割)。从根节点向下递归应用此过程,停止于包含的节点均属同一分类的叶节点(不用再进一步分割了)。

注意,我省略了超出本文范围的一些细节,包含如何处理数值特征、缺失特征、过拟合、剪枝树,等等。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 决策树
    +关注

    关注

    2

    文章

    96

    浏览量

    13345
  • 信息熵
    +关注

    关注

    0

    文章

    13

    浏览量

    7083

原文标题:信息论视角下的决策树算法:信息熵和信息增益

文章出处:【微信号:jqr_AI,微信公众号:论智】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    关于决策树,这些知识点不可错过

    种算法。它既是分类算法,也是回归算法,还可以用在随机森林中。咱们学计算机的同学经常敲if 、else if、else其实就已经在用到决策树的思想了。决策树
    发表于 05-23 09:38

    数据挖掘十大经典算法,你都知道哪些!

    ,ID3使用的是(shang),种不纯度度量准则,也就是的变化值,而C4.5用的是信息增益率。区别就在于
    发表于 11-06 17:02

    HanLP二元核心词典详细解析

    构造start和pair数组,并基于这两个数组实现词共现频率的分查找。当已经有缓存bin文件时,那直接读取构建start和pair数组,速度超快。源码实现二元核心词典的加载二元核心词
    发表于 12-03 10:37

    基于决策树的CART算法识别印第安人糖尿病患者

    利用决策树中CART算法识别印第安人糖尿病患者
    发表于 05-06 12:16

    决策树在机器学习的理论学习与实践

    决策树在机器学习的理论学习与实践
    发表于 09-20 12:48

    分类与回归方法之决策树

    统计学习方法决策树
    发表于 11-05 13:40

    机器学习的决策树介绍

    机器学习——决策树算法分析
    发表于 04-02 11:48

    ML之决策树与随机森林

    ML--决策树与随机森林
    发表于 07-08 12:31

    介绍支持向量机与决策树集成等模型的应用

    本文主要介绍支持向量机、k近邻、朴素贝叶斯分类决策树决策树集成等模型的应用。讲解了支持向量机SVM线性与非线性模型的适用环境,并对核函数技巧作出深入的分析,对线性Linear核函数、多项式
    发表于 09-01 06:57

    如何用UNICO来配置分类器呢?

    我正在开发超低功耗应用程序,其中 LSM6DSO32X 的 MLC 用于在发生有趣的事情时唤醒 mcu,特别是我实现了两个决策树,每个决策树
    发表于 12-22 06:26

    怎样使用UNICO生成具有多个决策树的UCF文件呢

    配置工具3. 当涉及到多个决策树的部分时,输入所需的数量。4.选择所有所需的所有特征5. 对于每棵,选择在步骤 1 中输入的要分组到该中的标签6. 在生成步骤,它将为每棵
    发表于 12-26 06:30

    决策树的生成资料

    在本文中,我们将讨论种监督式学习算法。最新代意法半导体 MEMS 传感器内置基于决策树分类
    发表于 09-08 06:50

    ISM330DHCX中可用的机器学习内核功能信息

    本文档旨在提供 ISM330DHCX 中可用的机器学习内核功能信息。机器学习处理能力允许将些算法从应用处理器转移到 MEMS传感器,从而持续降低功耗。通过决策树逻辑获得机器学习处理能
    发表于 09-08 07:53

    基于非均衡数据分类的犹豫模糊决策树

    2种不同的隶属度函数对数据集进行模糊化处理。在此基础上,根据隶属度函数和犹豫模糊集的信息能量求得各属性的犹豫模糊信息增益,选取最大值替代Fuκzy⑩3算法中的模糊信息
    发表于 06-09 15:51 5次下载

    大数据—决策树

    大数据————决策树(decision tree) 决策树(decision tree):是一种基本的分类与回归方法,主要讨论分类决策树
    的头像 发表于 10-20 10:01 885次阅读