简介
决策树学习是一种逼近离散值目标函数的方法,在这种方法中学习到的函数被表示成一颗决策树。是归纳推理算法之一,已经被成功的应用到从学习医疗诊断到学习评估贷款申请的信用风险的广阔领域。下面通过一个例子来简单说明一下决策树学习。
小丽认识一个男网友,在考虑要不要跟他见面。然后请好朋友来参考:
好朋友:他的年龄是多大?
小 丽:25岁。
好朋友:长的怎么样?
小 丽:帅。
好朋友:收入高不?
小 丽:中等情况。
好朋友:是公务员不?
小 丽:嗯。
好朋友:那可以。
好朋友给小丽决策的过程就是典型的决策树学习。通过这些条件将其分为见还是不见。
决策树表示法
决策树通过把实例从根节点排列到某个叶子节点来分类实例,叶子结点即为实例所属的分类。下图中画出了一棵典型的学习到的决策树。根据天气情况来分类“星期六是否适合打网球”。例如下面这个实例<Outlook=Sunny,Temperature=Hot,Humidity=High,Wind=Strong>将被判定为反例,即PlayTennis=No。
决策树学习的适用问题
通常决策树学习最适合具有以下特征的问题:
- 实例是由“属性-值”对表示的:实例是用一系列固定的属性和它们的值构成,例如Temperature=Hot;最简单的决策树学习,每一个属性取少数的离散的值,但扩展d算法也允许处理值域为实数的属性
- 目标函数具有离散的输出值:例如上图给每个实例赋予一个布尔型的分类,yes or no;
- 可能需要析取的描述
- 训练数据可以包含错误
- 训练数据可以包含缺少属性值的实例
基本的决策树学习算法(ID3算法)
基本的ID3算法通过自顶向下构造决策树来进行学习。构造过程是从“哪一个属性将在根节点被测试?”这个问题开始的。
我们使用分类能力最好的属性被选作树的根节点来测试,然后为根节点属性的每个可能值产生一个分支,并把训练样例排列到适当的分支之下,然后重复整个过程。