决策树——理论

1、机器学习绪论

1.机器学习的定义算法

广义:任何计算机程序经过经验来提升某任务处理性能的行为。机器学习

通常:对于某类任务T和性能度量P,若是一个计算机程序在T上以P衡量的性能随着经验E而自我完善,那么咱们称这个计算机程序在从经验E学习。函数

2.学习问题的三个特征post

    任务的种类;衡量任务提升的标准;经验的来源。性能

3.机器学习系统的模块学习

整体来看,系统设计就是产生执行系统、鉴定器、泛化器和实验生成器的特定实例。不少机器学习系统一般能够用这四个通用模块来刻画。测试

4.机器学习的搜索观点ui

    在机器学习方面,一个有效的观点是机器学习问题常常归结于搜索问题,即对很是大的假设空间进行搜索,以肯定最佳拟合观察到的数据和学习器已有知识的假设。编码

5.机器学习的中心问题设计

    从特殊的训练样例中概括出通常函数是机器学习的中心问题。

6.概念学习定义

    概念学习是指从有关某个布尔函数的输入输出训练样例中,推断出该布尔函数。

7.概括学习假设

概括学习假设任一假设若是在足够大的训练样例集中很好地逼近目标函数,它也能在未见实例中很好地逼近目标函数。

8.概括偏置

将概括推理系统看做是包含了概括偏置,好处在于它提供了一种非程序化的描述手段,以描述学习器从观察到的数据中进行泛化的策略。其次它还能够对概括偏置强度不一样的学习器进行比较。偏置强度越大泛化能力越强,即一种算法若是有偏性越强,那它的概括能力越强,能够分类更多的未见实例。

2、决策树学习

1.决策树表示法

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

    一般决策树表明实例属性值约束的合取(conjunction)的析取式(disjunction)。从树根到树叶的每一条路径对应一组属性测试的合取,树自己对应这些合取的析取。

2.ID3算法的过程

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

3.ID3算法的最佳分类属性的肯定

    ID3算法的核心问题是选取在树的每一个结点要测试的属性。咱们但愿选择的是最有助于分类实例的属性。那么衡量属性价值的一个好的定量标准是什么呢?这里将定义一个统计属性,称为“信息增益(information gain)”,用来衡量给定的属性区分训练样例的能力。ID3算法在增加树的每一步使用这个信息增益标准从候选属性中选择属性。

为了精确地定义信息增益,咱们先定义信息论中普遍使用的一个度量标准,称为熵(entropy),它刻画了任意样例集的纯度(purity)。

已经有了熵做为衡量训练样例集合纯度的标准,如今能够定义属性分类训练数据的效力的度量标准。这个标准被称为“信息增益(information gain)”。简单的说,一个属性的信息增益就是因为使用这个属性分割样例而致使的指望熵下降。更精确地讲,一个属性A 相对样例集合S 的信息增益Gain(S,A)被定义为:

4.ID3算法决策树的一条路径终结(即成为叶子节点)的条件

    (1)全部的属性已经被这条路径包括,或(2)与这个结点关联的全部训练样例都具备一样的目标属性值(也就是它们的熵为0)。

5.决策树学习中的假设空间搜索

    与其余的概括学习算法同样,ID3算法能够被描述为从一个假设空间中搜索一个拟合训练样例的假设。被ID3算法搜索的假设空间就是可能的决策树的集合。ID3算法以一种从简单到复杂的登山算法遍历这个假设空间,从空的树开始,而后逐步考虑更加复杂的假设,目的是搜索到一个正确分类训练数据的决策树。引导这种登山搜索的评估函数是信息增益度量。

6.ID3算法的优缺点

(1)优势:ID3算法中的假设空间包含全部的决策树,它是相对于现有属性的有限离散值函数的一个完整空间。

(2)优势:ID3算法在搜索的每一步都使用当前的全部训练样例,以统计为基础决定怎样精化当前的假设。使用全部样例的统计属性(例如,信息增益)的一个优势是大大减少了对个别训练样例错误的敏感性。所以,经过修改ID3算法的终止准则以接受不彻底拟合训练数据的假设,它能够被很容易地扩展处处理含有噪声的训练数据。

(3)缺点:基本的ID3算法在搜索中不进行回溯。每当在树的某一层次选择了一个属性进行测试,它不会再回溯从新考虑这个选择。因此,它易受无回溯的登山搜索中常见风险影响:收敛到局部最优的答案,但不是全局最优的。对于ID3算法,一个局部最优的答案对应着它在一条搜索路径上探索时选择的决策树。然而,这个局部最优的答案可能不如沿着另外一条分支搜索到的更使人满意。后面咱们讨论一个扩展,增长一种形式的回溯(后修剪决策树)。

7.ID3算法的概括偏置

    ID3算法从观测到的训练数据泛化以分类未见实例的策略是什么呢?换句话说,它的概括偏置是什么?

(1)ID3可被看做BFS-ID3的一个有效近似,它使用一种贪婪的启发式搜索企图发现最短的树,而不用进行完整的广度优先搜索来遍历假设空间。(2)由于ID3使用信息增益启发式规则和“登山”策略,它包含比BFS-ID3更复杂的偏置。尤为是,它并不是老是找最短的一致树,而是倾向于那些信息增益高的属性更靠近根结点的树。

8.决策树学习的常见问题

    决策树学习的实际问题包括肯定决策树增加的深度;处理连续值的属性;选择一个适当的属性筛选度量标准;处理属性值不完整的训练数据;处理不一样代价的属性;以及提升计算效率。

8.1避免过分拟合数据

    定义:给定一个假设空间H,一个假设hH,若是存在其余的假设h´∈H,使得在训练样例上h的错误率比h´小,但在整个实例分布上h´的错误率比h小,那么就说假设h过分拟合(overfit)训练数据。

缘由:是什么缘由致使h h′更好地拟合训练样例,但对于后来的实例却表现更差呢?(1)这种状况发生的一种可能缘由是训练样例含有随机错误或噪声。(2)事实上,当训练数据没有噪声时,过分拟合也有可能发生,特别是当少许的样例被关联到叶子结点时。这种状况下,极可能出现巧合的规律性,使得一些属性恰巧能够很好地分割样例,但却与实际的目标函数并没有关系。一旦这样的巧合的规律性存在,就有过分拟合的风险。

    解决:(1)及早中止增加树法,在ID3算法完美分类训练数据以前中止增加树;(2)后修剪法(post-prune),即容许树过分拟合数据,而后对这个树后修剪。

尽管第一种方法可能看起来更直接,可是对过分拟合的树进行后修剪的第二种方法被证实在实践中更成功。这是由于在第一种方法中精确地估计什么时候中止增加树很困难。

不管是经过及早中止仍是后修剪来获得正确大小的树,一个关键的问题是使用什么样的准则来肯定最终正确树的大小。解决这个问题的方法包括:(1)使用与训练样例大相径庭的一套分离的样例,来评估经过后修剪方法从树上修剪结点的效用。(2)使用全部可用数据进行训练,但进行统计测试来估计扩展(或修剪)一个特定的结点是否有可能改善在训练集合外的实例上的性能。(3)使用一个明确的标准来衡量训练样例和决策树编码的复杂度,当这个编码的长度最小时中止增加树。这个方法基于一种启发式规则,被称为最小描述长度(Minimum Description Length)的准则。第一种方法是最普通的,它常被称为训练和验证集(training and validation set)法。

使用验证集合来防止过分拟合的确切方法是什么?一种称为“错误率下降修剪(error-reduced pruning)”的方法(Quinlan 1987)是考虑将树上的每个结点做为修剪的候选对象。

实践中,一种用来发现高精度假设的很是成功的方法为“规则后修剪(rule post-pruning)”。这种修剪方法的一个变体被用在C4.5中(Quinlan 1993),C4.5是从原始的ID3算法的派生出来的。

8.2合并连续值属性

咱们最初的ID3定义限制为取离散值的属性。首先,学习到的决策树要预测的目标属性必须是离散的。其次,树的决策结点的属性也必须是离散的。能够简单地删除第二个限制,以便把连续值的决策属性加入到决策树中。这能够经过动态地定义新的离散值属性来实现,即先把连续值属性的值域分割为离散的区间集合。例如,对于连续值的属性A,算法可动态地建立一个新的布尔属性Ac,若是A<c,那么为Ac 真,不然为假。惟一的问题是如何选取最佳的阈值c。无疑,咱们会选择产生最大信息增益的阈值c

8.3属性选择的其余度量标准

信息增益度量存在一个内在偏置,它偏袒具备较多值的属性。

避免这个不足的一种方法是用其余度量,而不是信息增益,来选择决策属性。一个能够选择的度量标准是增益比率(gain ratio)(Quinlan1986)。增益比率经过加入一个称做分裂信息(split information)的项来惩罚具备较多值的属性,分裂信息用来衡量属性分裂数据的广度和均匀性:

注意分裂信息实际上就是S 关于属性A 的各值的熵。这与咱们前面对熵的使用不一样,在那里咱们只考虑S关于学习到的树要预测的目标属性的值的熵。

增益比率度量是用前面的增益度量和这里的分裂信息度量来共同定义的,即:

请注意,分裂信息项阻碍选择值为均匀分布的属性。

8.4处理缺乏属性值的训练样例

处理缺乏属性值的一种策略是赋给它结点 n 的训练样例中该属性的最多见值。另外一种策略是能够赋给它结点n 的被分类为c(x)的训练样例中该属性的最多见值。而后使用这个估计值的训练样例就能够被现有的决策树学习算法使用了。

8.5处理代价不一样的属性

    在某些学习任务中,实例的属性可能与代价相关。对于这样的任务,咱们将优先选择尽量使用低代价属性的决策树,仅当须要产生可靠的分类时才依赖高代价属性。经过引入一个代价项到属性选择度量,可使ID3算法考虑属性代价。例如,咱们能够用信息增益除以属性的代价,以使低代价的属性会被优先选择。虽然这种代价敏感度量不保证找到最优的代价敏感决策树,它们确实使搜索偏置到有利于低代价属性。

9.小结

(1)决策树学习为概念学习和学习其余离散值的函数提供了一个实用的方法。ID3系列算法使用从根向下增加法推断决策树,为每一个要加入树的新决策分支贪婪地选择最好的属性。

(2)ID3算法搜索完整的假设空间(也就是说,决策树空间可以表示任何定义在离散值实例上的任何离散值函数)。因此它避免了仅考虑有限的假设集合的方法的主要问题:目标函数可能不在假设空间中。

(3)隐含在ID3算法中的概括偏置包括优先选择较小的树,也就是说,它经过对假设空间的搜索增加树,使树的大小为正好能分类已有的训练样例。

(4)过分拟合训练数据是决策树学习中的重要问题。由于训练样例仅仅是全部可能实例的一个样本,向树增长分支可能提升在训练样例上的性能,但却下降在训练实例外的其余实例上的性能。所以,后修剪决策树的方法对于避免决策树学习中(和其余使用优选偏置的概括推理方法)的过分拟合是很重要的。

(5)对于基本ID3算法,研究者已经开发了大量的扩展。其中包括后修剪的方法;处理实数值的属性;容纳缺乏属性值的训练样例;当有了新的训练实例时递增精化决策树;使用信息增益以外的其余属性选择度量;考虑与实例属性关联的代价。