决策树分类算法算法
一、概述性能
决策树(decision tree)——是一种被普遍使用的分类算法。测试
相比贝叶斯算法,决策树的优点在于构造过程不须要任何领域知识或参数设置spa
在实际应用中,对于探测式的知识发现,决策树更加适用。对象
二、算法思想blog
通俗来讲,决策树分类的思想相似于找对象。现想象一个女孩的母亲要给这个女孩介绍男友,因而有了下面的对话:ci
女儿:多大年纪了?io
母亲:26。table
女儿:长的帅不帅?二叉树
母亲:挺帅的。
女儿:收入高不?
母亲:不算很高,中等状况。
女儿:是公务员不?
母亲:是,在税务局上班呢。
女儿:那好,我去见见。
这个女孩的决策过程就是典型的分类树决策。
实质:经过年龄、长相、收入和是否公务员对将男人分为两个类别:见和不见
假设这个女孩对男人的要求是:30岁如下、长相中等以上而且是高收入者或中等以上收入的公务员,那么这个能够用下图表示女孩的决策逻辑
上图完整表达了这个女孩决定是否见一个约会对象的策略,其中:
◊绿色节点表示判断条件
◊橙色节点表示决策结果
◊箭头表示在一个判断条件在不一样状况下的决策路径
图中红色箭头表示了上面例子中女孩的决策过程。
这幅图基本能够算是一颗决策树,说它“基本能够算”是由于图中的断定条件没有量化,如收入高中低等等,还不能算是严格意义上的决策树,若是将全部条件量化,则就变成真正的决策树了。
决策树分类算法的关键就是根据“先验数据”构造一棵最佳的决策树,用以预测未知数据的类别
决策树:是一个树结构(能够是二叉树或非二叉树)。其每一个非叶节点表示一个特征属性上的测试,每一个分支表明这个特征属性在某个值域上的输出,而每一个叶节点存放一个类别。使用决策树进行决策的过程就是从根节点开始,测试待分类项中相应的特征属性,并按照其值选择输出分支,直到到达叶子节点,将叶子节点存放的类别做为决策结果。
三、决策树构造
假若有如下判断苹果好坏的数据样本:
样本 红 大 好苹果 0 1 1 1 1 1 0 1 2 0 1 0 3 0 0 0 |
样本中有2个属性,A0表示是否红苹果。A1表示是否大苹果。假如要根据这个数据样本构建一棵自动判断苹果好坏的决策树。
因为本例中的数据只有2个属性,所以,咱们能够穷举全部可能构造出来的决策树,就2棵,以下图所示:
显然左边先使用A0(红色)作划分依据的决策树要优于右边用A1(大小)作划分依据的决策树。
固然这是直觉的认知。而直觉显然不适合转化成程序的实现,因此须要有一种定量的考察来评价这两棵树的性能好坏。
决策树的评价所用的定量考察方法为计算每种划分状况的信息熵增益:
若是通过某个选定的属性进行数据划分后的信息熵降低最多,则这个划分属性是最优选择
属性划分选择(即构造决策树)的依据:
简单来讲,熵就是“无序,混乱”的程度。
经过计算来理解:
1、原始样本数据的熵:
样例总数:4
好苹果:2
坏苹果:2
熵: -(1/2 * log(1/2) + 1/2 * log(1/2)) = 1
信息熵为1表示当前处于最混乱,最无序的状态。
二、两颗决策树的划分结果熵增益计算
树1先选A0做划分,各子节点信息熵计算以下:
0,1叶子节点有2个正例,0个负例。信息熵为:e1 = -(2/2 * log(2/2) + 0/2 * log(0/2)) = 0。
2,3叶子节点有0个正例,2个负例。信息熵为:e2 = -(0/2 * log(0/2) + 2/2 * log(2/2)) = 0。
所以选择A0划分后的信息熵为每一个子节点的信息熵所占比重的加权和:E = e1*2/4 + e2*2/4 = 0。
选择A0作划分的信息熵增益G(S, A0)=S - E = 1 - 0 = 1.
事实上,决策树叶子节点表示已经都属于相同类别,所以信息熵必定为0。
树2先选A1做划分,各子节点信息熵计算以下:
0,2子节点有1个正例,1个负例。信息熵为:e1 = -(1/2 * log(1/2) + 1/2 * log(1/2)) = 1。
1,3子节点有1个正例,1个负例。信息熵为:e2 = -(1/2 * log(1/2) + 1/2 * log(1/2)) = 1。
所以选择A1划分后的信息熵为每一个子节点的信息熵所占比重的加权和:E = e1*2/4 + e2*2/4 = 1。也就是说分了跟没分同样!
选择A1作划分的信息熵增益G(S, A1)=S - E = 1 - 1 = 0.
所以,每次划分以前,咱们只须要计算出信息熵增益最大的那种划分便可。
先作A0划分时的信息熵增益为1>先作A1划分时的信息熵增益,因此先作A0划分是最优选择!!!
四、算法指导思想
通过决策属性的划分后,数据的无序度愈来愈低,也就是信息熵愈来愈小
五、算法实现
梳理出数据中的属性
比较按照某特定属性划分后的数据的信息熵增益,选择信息熵增益最大的那个属性做为第一划分依据,而后继续选择第二属性,以此类推