学习打卡内容:
阅读《李航统计学习方法》中p55-p58页
总结决策树模型结构
理解决策树递归思想
阅读《李航统计学习》中p58-p63页
学习信息增益
学习信息增益率
阅读《李航统计学习》中p63-65页
学习ID3算法优缺点
学习C4.5算法优缺点
理解C4.5算法在ID3算法上有什么提升
学习C4.5算法在连续值上的处理
学习决策树如何生成
阅读《机器学习实战》中p37-p41页
划分数据集代码
选择最好的数据集划分方式代码
创建树的函数代码
要求:
总结学习任务中的内容
根据《机器学习实战》中的代码,计算所提供的数据的相关内容
1、总结决策树模型结构
决策树是一种典型的分类方法,首先对数据进行处理, 利用归纳算法生成可读的规则和决策树,然后使用决策对新数据进行分析。
本质上决策树是通过一系列规则对数据进行分类的过程。
决策树的基本组成部分: 决策结点、 分支和叶子。
决策树中最上面的结点称为根结点。是整个决策树的开始。 每个分支是一个新的决策结点, 或者是树的叶子。每个决策结点代表一个问题或者决策.通常对应待分类对象的属性。每个叶结点代表一种可能的分类结果。
CLS(Concept Learning System) 算法步骤:
1)生成一颗空决策树和一张训练样本属性集;
2)若训练样本集T 中所有的样本都属于同一类,则生成结点T , 并终止学习算法;否则
3)根据某种策略从训练样本属性表中选择属性A 作为测试属性, 生成测试结点A
4)若A的取值为v1,v2,…,vm, 则根据A 的取值的不同,将T 划分成m个子集T1,T2,…,Tm;
5)从训练样本属性表中删除属性A;
6)转步骤2, 对每个子集递归调用CLS;
2、学习信息增益、学习信息增益率
熵(entropy): 信息量大小的度量, 即表示随机变量不确定性的度量。
事件的信息量可如下度量:
假设有n个互不相容的事件a1,a2,a3,….,an,它们中有且仅有一个发生, 则其平均的信息量(熵)可如下度量:
设有随机变量(X,Y),其联合概率分布为:
条件熵H(Y|X): 表示在己知随机变量X的条件下随机变量Y的不确定性, 定义为X给定条件下Y的条件概率分布的熵对X的数学期望:
当熵和条件熵中的概率由数据估计(特别是极大似然估计)得到时, 所对应的熵与条件熵分别称为经验熵(empiricalentropy)和经验条件熵(empirical conditional entropy )
特征A对训练数据集D的信息增益,g(D,A), 定义为集合D的经验熵H(D)与特征A给定条件下
D的经验条件熵H(D|A)之差, 即g(D,A)=H(D)-H(D|A)
(Information gain)表示得知特征X的信息而使得类Y的信息的不确定性减少的程度.
—般地, 熵H(Y)与条件熵H(Y|X)之差称为互信息(mutual information)
学习信息增益率:特征A对训练数据集D的信息增益比gR(D,A)定义为其信息增益g(D,A)与训练数据集D的经验熵H(D)之比:
3、学习ID3算法优缺点
ID3算法是一种经典的决策树学习算法, 由Quinlan于1979年提出。
ID3算法主要针对属性选择问题。 是决策树学习方法中最具影响和最为典型的算法。
该方法使用信息增益度选择测试属性。
当获取信息时, 将不确定的内容转为确定的内容, 因此信息伴着不确定性。
从直觉上讲, 小概率事件比大概率事件包含的信息量大。 如果某件事情是“百年一见” 则肯定比“习以为常” 的事件包含的信息量大。
在决策树分类中, 假设S是训练样本集合, |S|是训练样本数, 样本划分为n个不同的类C1,C2,….Cn, 这些类的大小分别标记为|C1|, |C2|, …..,|Cn|。 则任意样本S属于类Ci的概率为:
Entropy(S|A) =∑(|Sv|/|S|) * Entropy(Sv)
∑是属性A的所有可能的值v, Sv是属性A有v值的S子集,|Sv|是Sv 中元素的个数; |S|是S中元素的个数。
1) 决定分类属性;
2 )对目前的数据表, 建立一个节点N
3 )如果数据库中的数据都属于同一个类, N就是树叶, 在树叶上标出所属的类
4 )如果数据表中没有其他属性可以考虑, 则N也是树叶, 按照少数服从多数的原则在树叶上标出所属类别
5 )否则, 根据平均信息期望值E或GAIN值选出一个最佳属性作为节点N的测试属性
6 )节点属性选定后, 对于该属性中的每个值:
从N生成一个分支, 并将数据表中与该分支有关的数据收集形成分支节点的数据表, 在表中删除节点属性那一栏如果分支数据表非空, 则运用以上算法从该节点建立子树。
ID3算法的基本思想是, 以信息熵为度量, 用于决策树节点的属性选择, 每次优先选取信息量最多的属性, 亦即能使熵值变为最小的属性, 以构造一颗熵值下降最快的决策树, 到叶子节点处的熵值为0。 此时, 每个叶子节点对应的实例集中的实例属于同一类。
学习C4.5算法优缺点:
1)定义
C4.5算法与ID3算法相似,C4.5 算法对ID3算法进行了改进。C4.5 在生成的过程中,用信息增益比来选择特征。
2)优点
通过信息增益率选择分裂属性,克服了ID3算法中通过信息增益倾向于选择拥有多个属性值的属性作为分裂属性的不足;
能够处理离散型和连续型的属性类型,即将连续型的属性进行离散化处理;
构造决策树之后进行剪枝操作;
能够处理具有缺失属性值的训练数据。
3)缺点
C4.5生成的是多叉树,即一个父节点可以有多个节点,因此算法的计算效率较低,特别是针对含有连续属性值的训练样本时表现的尤为突出。
算法在选择分裂属性时没有考虑到条件属性间的相关性,只计算数据集中每一个条件属性与决策属性之间的期望信息,有可能影响到属性选择的正确性。
C4.5算法只适合于能够驻留内存的数据集,当训练集大得无法在内存容纳时,程序无法运行;
原文:https://blog.csdn.net/weixin_44049128/article/details/91386095
代码待完善。