决策树
定义
分类决策树模型是一种描述对实例进行分类的树形结构。决策树由节点(node)和有向边(directed edge)组成。节点有两种类型:内部节点和叶节点。内部节点表示一个特征或属性,叶节点表示一个类。用决策树分类,从根节点开始,对实例的某一特征进行测试,根据测试结果,将实例分配到其子结点;这时,每一个子结点对应着该特征的一个取值。如此递归的对实例进行测试并分类,直至达到叶节点。最后将实例分到叶结点的类中。(下面给出一个简单的例子)
接下来大家应该都会有疑问,该按照什么次序来选择变量呢?
要解决这个问题我们要学决策树有关的算法,主要有ID3、C4.5、CART算法,下面我们通俗易懂的过一遍
ID3
要学习ID3算法,首先要了解《信息论》里面的信息增益概念,学习信息增益之前先简单了解熵是什么
熵这个概念最早起源于物理学,在物理学中是用来度量一个热力学系统的无序程度,而在信息学里面,熵是对不确定性的度量。在1948年,香农引入了信息熵(information entropy),将其定义为离散随机事件出现的概率,一个系统越是有序,信息熵就越低,反之一个系统越是混乱,它的信息熵就越高。所以信息熵可以被认为是系统有序化程度的一个度量。
相关公式
所以上面的该按照什么次序来选择变量呢?ID3算法根据信息增益准则的特征选择方法是:对训练数据集D,计算其每个特征的信息增益,并比较它们的大小,选择信息增益最大的特征。
ID3算法的核心是在决策树各个节点上应用 信息增益 准则选择特征,递归的构建决策树。具体方法是:从根结点开始,对结点计算所有可能的特征的信息增益,选择信息增益最大的特征作为结点的特征,由该特征的不同取值建立子结点;再对子结点递归的调用以上方法,构建决策树;直到所有特征的信息增益均很小或没有特征可以选择为止。ID3相当于用极大似然法进行概率模型的选择。
ID3算法的做法是每次选取当前最佳的特征来分割数据,并按照该特征的所有可能取值来切分。也就是说,如果一个特征有4种取值,那么数据将被切分成4份。一旦按照某特征切分后,该特征在之后的算法执行过程中将不会再起作用;另一种方法是二元切分法,即每次把数据集切分成两份。如果数据的某特征值等于切分所要求的值,那么这些数据将进入左子树,反之则进入右子树。
除了切分过于迅速外,ID3算法还存在另一个问题,它不能直接出来连续型特征。只有事先将连续型特征转为离散型,才能在ID3中使用。 但这种转换过程会破坏连续型变量的内在性质。而使用 二元切分法 则易于对树构建过程中进行调整以处理连续型特征。具体的处理方法是: 如果特征值大于给定值就走左子树,否则走右子树。另外二元切分法也节省了树的构建时间。 同时,ID3算法对于缺失值的情况没有考虑。
简单例子
到这里,大部分的小伙伴还是有点懵,先别慌,看下面一个简单的利用ID3算法产生决策树例子就懂了