机器学习01(决策树)

来源:互联网 发布:vm桥接后没有网络 编辑:程序博客网 时间:2024/05/18 05:37

决策树

1.简介决策树学习是一种逼近离散值目标函数的方法,在这种方法中学习到的函数被表示为一棵决策树。

2.决策树的表示

决策树通过把实例从根节点排列到某个叶子结点来分类实例,叶子结点即为实例所属的分类。树上的每一个结点指定了对实例的某个属性的测试,并且该结点的每一个后继分支对应于该属性的一个可能值。分类实例的方法是从这棵树的根节点开始,测试这个结点的属性,然后按照给定实例的属性值对应的树枝向下移动。然后这个过程在以新结点的根的子树上重复。


3.ID3算法

通过自顶向下构造决策树来进行学习。构造过程是从“哪一个属性将在树的根结点被测试?”这个问题开始的。为了回答这个问题,使用统计测试来确定每一个实例属性单独分类训练样例的能力。分类能力最好的属性被选作树的根结点的测试。然后为根节点属性的每个可能值产生一个分支,并把训练样例排列到适当的分支之下。然后重复整个过程,用每个分支结点关联的训练样例来选取在该点被测试的最佳属性。这形成了对合格决策树的贪婪搜索(greedy search),也就是算法从不回溯重新考虑原来的选。

专门用于学习布尔函数的ID3算法概要

ID3(Examples,Target_attribute,Attributes)
         Examples即训练样例集。Target_attribute是这棵树要测试的目标属性。Attributes是除目标属性外供学习到的决策树测试的属性列表。返回一棵能正确分类给定Examples的决策树。
•如果Examples都为正,那么返回label=+的单结点树Root
•如果Examples都为反,那么返回label=+的单结点树Root
•如果Attributes为空,那么返回单结点树Root,label=Examples中最普遍的Target_attribute的值
•否则开始
    •A←Attributes中分类Examples能力最好的属性
    •Root的决策属性←A
    •对于A的每个可能值vi
           •在Root下加一个新的分支对应测试A=vi
              •令Examples vi为Examples中满足A属性值为vi的子集
        •如果Examples vi为空
            •在这个新分支下加一个叶子结点,结点的label=Examples中最普遍的Target_attribute值
            •否则在这个新分支下加一个子树ID3(Examples vi,Target_attribute,Attributes-{A})
•结束
•返回Root

4.确定能力最好的属性(信息增益,熵)

熵:刻画了任意样例集的纯度。

设某个属性S具有c个不同的值,则S相对c个状态的分类的熵定义为:

其中:pi是所占的比例(概率)

信息增益(information gain):一个属性的信息增益就是由于使用这个属性分割样例而导致的期望熵降低。


Values(A)是属性A所有可能值的集合,Sv 是S中属性A的值为v的子集。
例如,假定S包含14个样例-[9+,5-]。在这14个样例中,假定正例中的6个和反例中的2个有Wind=Weak,其他的有Wind=Strong。由于按照属性Wind分类14个样例得到的信息增益可以计算如下。
Values(Wind)=Weak,Strong
S=[9+,5-]
SWeak←[6+,2-]
Sstrong←[3+,3-] 


=Entropy(S)-(8/14)Entropy(SWeak)-(6/14)Entropy(Sstrong)
=0.940-(8/14)0.811-(6/14)1.00
=0.048

ID3算法中的假设空间包含所有的决策树,它是关于现有属性的有限离散值函数的一个完整空间。
当变了决策树空间时,ID3仅维护单一的当前假设。
基本的ID3算法在搜索中不进行回溯。
ID3算法在搜索的每一步都使用当前的所有训练样例,以统计为基础觉得怎样简化以前的假设。

5.剪枝


6.C4.5

C4.5克服了ID3的2个缺点:
1.用信息增益选择属性时偏向于选择分枝比较多的属性值,即取值多的属性
2.不能处理连贯属性

对于离散属性V,ID3中计算的是“信息增益”,C4.5中则计算“信息增益率”,见数据挖掘概念与技术P220.

其他的决策树如CART等都是在此基础上的演变,此处不一一介绍了。







0 0