信息增益

机器学习算法之--决策树

自作多情 提交于 2019-12-18 16:06:05
决策树学习通常包括3个步骤:特征选择,决策树生成,决策树修剪。 决策树的一个重要性质: 路径是互斥且完备的。 决策树通常是递归的选择最优特征,根据该特征对数据进行分割。可能会有过拟合问题,所以在生成决策树之后要进行剪枝。 1. 特征选择 数据集会有很多各种各样的特征,怎么选取最优的特征,最具分类能力的特征,排除无关影响? 通常特征选择的准则是信息增益或信息增益比 最大的。 信息增益:表示得知特征X的信息之后,使类Y的信息的不确定性减少的程度。 熵:是表示随机变量不确定性的度量,不确定性越大,熵的值就越大。 H(p) = -∑p i logp i 这是对整个数据类的熵,不是单个特征的。 H(Y|X) = ∑p i H(Y|X=x i ) 条件熵:在X给定的条件下,Y的不确定性。如果X特征只有一个取值,就不用最外面的求和了。(该特征可以舍弃,说明无用) 所以: 信息增益(互信息):g(Y,X) = H(Y) - H(Y|X) ----可能会存在偏向于选择取值较多的特征的问题,使用信息增益比校正。 信息增益比: g R (Y,X) = (H(Y) - H(Y|X)) / H(X)     --H(X): 是训练数据集中特征X的熵 2. 决策树生成 2.1 ID3算法 输入:训练数据集D,特征集A,阈值e; 输出:决策树T   1. 若D中所有实例属于同一类C k ,则T为单节点树

决策树

余生颓废 提交于 2019-12-18 10:47:07
   决策树 是一种基本的分类与回归方法。决策树模型呈树形结构,可以认为是if-then规则的集合,也可以认为是定义在特征空间与类空间上的条件概率分布。其主要优点是模型具有可读性,分类速度快。学习时,利用训练数据,根据损失函数最小化的原则建立决策树模型。预测时,对新的数据,利用决策树模型进行分类。决策树学习通常包括3个步骤: 特征选择 、 决策树的生成 和 决策树的修剪 。    定义(决策树): 决策树由结点(node)和 有向边(directed edge)组成。结点有两种类型:内部结点(internal node)和叶节点(leaf node)。内部结点表示一个特征或属性,叶节点表示一个类。   决策树的路径或其对应的if-then规则集合具有一个重要的性质:互斥并且完备。这就是说,每一个实例都被一条路径或一条规则所覆盖,而且只被一条路径或一条规则所覆盖。   决策树学习的算法通常是一个递归地选择最优特征,并根据该特征对训练数据进行分割,使得对各个子数据集有一个最好的分类的过程。决策树学习算法包括 特征选择 、 决策树生成 与 决策树的剪枝 过程。决策树学习常用的算法有 ID3 、 C4.5 与 CART 。    特征选择    通常特征选择的准则是 信息增益 或 信息增益比 。    特征增益   在信息论与概率统计中,熵(entropy)是表示随机变量不确定性的度量

决策树中信息增益值的计算

删除回忆录丶 提交于 2019-12-12 10:30:07
一、 确定数据 二、正例(好瓜)占8/17,反例(坏瓜)占9/17,则根结点的信息熵为: 三、计算当前属性集合{ 色泽,根蒂,敲声,纹理,脐带,触感 }中每个属性的信息增益。 色泽有三个可能的取值:青绿、乌黑、浅白 D1{色泽=青绿}={1,4,6,10,13,17},正例3/6,反例3/6 D2{色泽=乌黑}={2,3,7,8,9,15},正例4/6,反例2/6 D3{色泽=浅白}={5,11,12,14,16},正例1/5,反例4/5 这三个分支结点的信息熵为: 四、由此我们可以计算出色泽属性的信息增益是(青绿,乌黑, 浅白三个分类类别分别乘自己对应的信息熵): 五、同理,按照一样的方法我们可以求出其他属性的信息增益,分别如下: 六、知道了纹理是对最后的类别影响最大的信息熵 于是我们可以选择根蒂、脐部、触感这3个特征属性中的任何一个(因为他们的信息增益值相等且最大),其他两个结点同理。这样就可以得到新一层的结点。通过递归就能构建出整个决策树了。 来源: CSDN 作者: apple-平家物语 链接: https://blog.csdn.net/weixin_43910988/article/details/103485002

集成学习 - 决策树-随机森林

吃可爱长大的小学妹 提交于 2019-12-09 00:40:33
认识 我觉得决策树+ 随机森林 应该是 ML 中最为重要的算法之一了吧, 反正我是很喜欢用的. 算法难度低, 可解释性很强, 能可视化 能处理非线性, 可扩展为随机森林(集成学习) 建立决策树的判别依据有很多, 比较主流的有经典的 ID3 算法(熵), C4.5 , 基尼系数等. 我是这种基于熵的理解了, 上学时学过熵的概念, 在<> 和 <> 有讲到. 其余的也没仔细看, 暂时能深入理解一个就可以了. 信息熵 衡量信息的不确定性 或 混乱程度的指标 不确定性越大, 则熵值越大 直观认知 举几个栗子: a. 大海捞针: 几乎不可能, 熵值很大 b. 扔一次硬币: 不确定性也很大, 熵值很大 c. 詹姆斯强攻篮下: 进球概率大, 不确定性很小, 因此熵值小 d. 斗地主时我已经推出对方剩下的牌: 这个信息量就很大了, 对于局势不确定性减少, 则熵变小. 通过直观, 我们用 信息熵 这个概念来 衡量信息的不确定性大小 , 如何对这个概念直观定性呢? 信息量,感觉上跟 概率 有关系, 概率很多, 信息量就很多 信息量, 应该是可以 相加 的 信息量, 应该是一个 单调的 信息量, 应该 不能为负数 , 最多只能有, 最差情况是 没有信息含量 , 不能说负吧 理性认知 也可以从系统论的观点来认识 (系统 = 多个元素的 相互联系). 可以肯定一点, 既然跟概率有关, 那 概率取值是 [0

信息熵、信息增益与信息增益率

社会主义新天地 提交于 2019-12-07 19:48:33
来源于http://m.blog.csdn.net/u012351768/article/details/73469813 信息熵(Information Entropy)   信息熵是用来评估样本集合的纯度的一个参数,就是说,给出一个样本集合,这个样本集合中的样本可能属于好多不同的类别,也可能只属于一个类别,那么如果属于好多不同的类别的话,我们就说这个样本是不纯的,如果只属于一个类别,那么,我们就说这个样本是纯洁的。   而信息熵这个东西就是来计算一个样本集合中的数据是纯洁的还是不纯洁的。下面上公式:      下面解释一下公式的意思,其实很好理解,计算一个集合的纯度,就是把集合中每一个类别所占的比例 (k从1到 ,其中 表示类别的个数)乘上它的对数,然后加到一起,然后经过计算之后,可以得到一个数据集的信息熵,然后根据信息熵,可以判断这个数据集是否纯粹。信息熵越小的话,表明这个数据集越纯粹。信息熵的最小值为0,此时数据集D中只含有一个类别。 信息增益(Information Gain)   下面来介绍信息增益,所谓的信息增益,是要针对于具体的属性来讲的,比如说,数据集D中含有两个类别,分别是好人和坏人,那么,随便选择一个属性吧,比如说性别,性别这个属性中包含两个值,男人和女人,如果用男人和女人来划分数据集D的话,会得到两个集合,分别是 和 。划分后的两个集合中各自有 好人和坏人

熵的直观理解

坚强是说给别人听的谎言 提交于 2019-12-06 16:13:59
熵定义:随机变量的概率分布对应的 **信息量的平均值 ** 就叫做随机变量的熵。 我们暂时把信息看做在学习x的值时候的”惊讶程度” 比如,苹果一定落地,信息量就很小。苹果落到某个盒子,熵也就大了,信息量比较大,不确定性也比较大了。 熵越大随机变量的不确定性就越大。 id3算法的核心就是从根节点开始,对节点计算所有可能的特征的信息增益,选择信息增益最大的特征作为节点的特征,由该特征取不同的值建立子节点;再对子节点递归调用以上方法。直到 所有特征的信息增益都很小停止调用。 来源: https://www.cnblogs.com/heracles-Mercury/p/11993503.html

决策树

…衆ロ難τιáo~ 提交于 2019-12-05 11:24:19
决策树的学习通常包含三个步骤:特征选择、树的生成、树的剪枝。决策树的生成采用启发式的方法,只考虑局部最优,相对地,决策树的剪枝则考虑全局最优 特征选择 信息增益 随机变量 \(X\) 的熵定义为: \[H(X)=-\sum \limits_{i}p_i\log p_i\] 熵越大,不确定性越大。从定义可验证 \[0 \leq H(X) \leq \log n\] 条件熵 \(H(Y|X)\) 定义为给定 \(X\) 时 \(Y\) 的条件概率分布的熵对 \(X\) 的数学期望: \[H(Y|X)=\sum \limits_{i=1}^n p(X=x_i) H(Y|X=x_i)=-\sum \limits_{i=1}^n\sum \limits_{j=1}^m p(X=x_i) p(Y=y_j)\log p(Y=y_j)\] 特征 \(A\) 对数据集 \(D\) 的信息增益: \[g(D,A)=H(D)-H(D|A)\] 一般地,熵 \(H(Y)\) 与条件熵 \(H(Y|X)\) 之差称为互信息。决策树学习中的信息增益等价于训练数据集中类与特征的互信息 信息增益比 以信息增益划分特征,容易偏向于选择取值较多的特征(如DNA),信息增益比定义为: \[g_R(D,A)=\frac{g(D,A)}{H_A(D)}\] 其中, \(H_A(D)=-\sum_{i=1}^n \dfrac

决策树算法

牧云@^-^@ 提交于 2019-12-05 09:25:17
一、目录 1、目录 2、决策树初步认知 3、决策树--ID3算法 4、决策树--C4.5算法 5、决策树--CART 6、CART算法的剪枝 7、决策树的优缺点 8、其他补充 二、决策树初步认知 决策树算法在机器学习中算是很经典的一个算法系列了。它先按照影响结果的主要因素进行排序,选取最主要的因素先进行分岔,依次循环下去。各种方法不同之处在于选择的因素判别方法不同。 它既可以作为分类算法,回归算法,同时也特别适合集成学习比如随机森林。作为一个码农经常会不停的敲if-else 。If-else其实就已经在用到决策树的思想了:关于递归的终止条件有三种情形: 1)当前节点包含的样本属于同一类,则无需划分,该节点作为叶子节点,该节点输出的类别为样本的类别 2)该节点包含的样本集合为空,不能划分 3)当前属性集为空,则无法划分,该节点作为叶子节点,该节点的输出类别为样本中数量多数的类别 本文就对 ID3, C4.5和CART 算法做一个详细的介绍。选择CART做重点介绍的原因是scikit-learn使用了优化版的CART算法作为其决策树算法的实现。 三、决策树 --ID3 算法 1970年代,一个叫昆兰的大牛找到了用信息论中的熵来度量决策树的决策选择过程,方法一出,它的简洁和高效就引起了轰动,昆兰把这个算法叫做ID3。 1.1 信息熵 首先,我们需要熟悉信息论中熵的概念。

决策树(上)-ID3、C4.5、CART

你离开我真会死。 提交于 2019-12-04 16:19:17
参考资料(要是对于本文的理解不够透彻,必须将以下博客认知阅读,方可全面了解决策树): 1. https://zhuanlan.zhihu.com/p/85731206 2. https://zhuanlan.zhihu.com/p/29980400 3. https://github.com/Vay-keen/Machine-learning-learning-notes/blob/master/%E5%91%A8%E5%BF%97%E5%8D%8E%E3%80%8AMachine%20Learning%E3%80%8B%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0(5)--%E5%86%B3%E7%AD%96%E6%A0%91.md 决策树是一个非常常见并且优秀的机器学习算法,它易于理解、可解释性强,其可作为分类算法,也可用于回归模型。本文将分三篇介绍决策树, 第一篇介绍基本树(包括 ID3、C4.5、CART),第二篇介绍 Random Forest、Adaboost、GBDT,第三篇介绍 Xgboost 和 LightGBM。 在进入正题之前,先让我们了解一些有关信息论的知识! 信息论 1.信息熵 在决策树算法中,熵是一个非常非常重要的概念。 一件事发生的概率越小,我们说它所蕴含的信息量越大。 比如:我们听女人能怀孕不奇怪,如果某天听到哪个男人怀孕了

决策树系列三——基尼指数,减枝和

心不动则不痛 提交于 2019-12-03 15:40:02
- - coding: utf-8 - - """ Created on Tue Aug 14 17:36:57 2018 @author: weixw """ import numpy as np 定义树结构,采用的二叉树,左子树:条件为true,右子树:条件为false leftBranch:左子树结点 rightBranch:右子树结点 col:信息增益最大时对应的列索引 value:最优列索引下,划分数据类型的值 results:分类结果 summary:信息增益最大时样本信息 data:信息增益最大时数据集 class Tree: def init (self, leftBranch=None, rightBranch=None, col=-1, value=None, results=None, summary=None, data=None): self.leftBranch = leftBranch self.rightBranch = rightBranch self.col = col self.value = value self.results = results self.summary = summary self.data = data def __str__(self): print(u"列号:%d" % self.col) print(u"列划分值