机器学习——决策树 知识点总结

来源:互联网 发布:淘宝怎么交电费 编辑:程序博客网 时间:2024/05/16 00:57
一、决策树阐述、特性、优缺点:
1.阐述、特性:
决策树是一种基本的分类和回归算法,主要包含三个部分:特征选择、决策树的生成和剪枝。
首先,决策树的构成是由和边,结点包括内部结点和外部结点,内部结点表示特征,外部结点表示类别。
其次,决策树学习本质是从训练数据中归纳出一组分类规则,使它与训练数据矛盾较小的同时具有较强的泛化能力。另一个数学角度:由训练数据集估计条件概率,是一种判别式模型。
损失函数是正则化的极大似然函数。学习的策略是损失函数最小化。(NP难问题,通常采用启发式算法,SMO就是一个启发式算法,包括特、生、剪三个步骤)
最后,决策树算法思想是递归的选择最有特征,根据最优特征对数据进行分割,这一过程对应着决策树的构建和特征空间的划分。
决策树有可能产生过拟合,所以需要剪枝,减去过于细分的结点。
2、优缺点
优点:构造简单、判别速度快; 对数据不需要任何加工; 对于unbalance 的数据效果好。
缺点:泛化能力差,容易过拟合; 对新增的样本,需要调整整棵树的结构。

二、特征选择:
特征选择的准则是:信息增益或信息增益比,选择使信息增益最大的特征分割。
1、信息增益:
熵:数据的不一致性,(随机变量的不确定性)。
条件熵:在特征集合给定的条件下,数据集合非一致性。
信息增益:熵 — 条件熵 表示:在得知特征的条件下,使得数据分类的不确定性减少的程度。所以,信息增益越大表示特征的划分能力越强。
2、信息增益比:
因为用信息增益作为划分数据集的特征,可能会偏向于:选择取值较多的特征,用信息增益比可以矫正。
信息增益比:信息增益 / 关于当前特征取值的熵。
三、决策树的生成:
1) ID3:
选择信息增益最大的特征。
核心:在决策树的各个节点上利用信息增益准则选择特征,递归的构建决策树。
具体方法:从根节点开始,对结点计算所有可能的特征的信息增益,选择信息增益最大的特征作为当前结点的特征,由该特征的不同取值建立子节点(划分数据),再对子节点递归的调用以上方法,构建决策树。直到所有特征的信息增益都很小或没有特征可以选择为止。
相当于用极大似然估计进行概率模型的选择。
缺点:只有树的生成,容易过拟合;
偏向于选择 取值较多的特征。
2)C4.5:
用信息增益比来选择特征。
对ID3的一个改进。
3)CART(classification and regression tree )算法:
用基尼指数选择特征。
优点:不用提前确定权衡银子a,而是在剪枝的同时找到最优的a值。
步骤:1、决策树生成:基于训练数据集生成决策树,决策树要越大越好。(就是递归的生成二叉决策树的过程,回归用平方误差最小的准则,对分类用基尼指数最小的准则。)
2、决策树剪枝:用验证数据集对已生成的决策树进行剪枝,并生成最优子树。用最小损失函 数作为剪枝的标准。
1、cart 决策树生成:
(1)最小二乘回归树生成算法:(在训练数据集所在的输入空间中,递归的对每个区域划分为两个子区域,并决定每个子区域的输出值,构建决策二叉树)
输入:训练数据集D; 输出:回归树;
1)根据平方误差最小化准则寻找当前数据集的最优切分变量和切分点;
2)用选定的切分变量和切分点对数据进行划分,并决定每个划分区域相应的输出值c_m;
3)继续对两个划分的区域进行上面的步骤,直到满足条件;
4)将输入空间划分为M的区域,生成决策树:f(x)=求和(c_m * I)
(2)分类树的生成:
输入:训练数据集D,终止条件; 输出:分类决策树;
1)对给定的训练数据集,计算现有特征对数据集的基尼指数,对每个特征属性值都将数据划分两部分;2)在所有可能的特征和划分点中,选择基尼指数最小的作为最优特征和最优切分点。
将数据切分为两个子节点。3)对两个子节点递归的调用上面方法,直到满足停止条件;4)生成。
2、cart剪枝:
(从生成算法产生的决策树底端开始不断剪枝,直到根节点。生成了一个子树序列;利用交叉验证法在独立的验证数据集上岁子树进行测试,找出最优子树(损失函数最小的))
四、决策树的剪枝:
提出:决策树的生成算法递归的产生决策树,直到不能继续下去为止,这样的算法往往对训练数据的分类很准确,但是对未知的测试数据分类却没有那么准确,容易产生过拟合。
目的:解决过拟合,方法:考虑决策树的复杂度,对已经生成决策树进行简化。(过拟合的原因:建立决策树的过程中,过多的考虑如何选择特征,能对训练数据分类的更加准确,从而构建出过于复杂的决策树。)
实现原理:通过极小化决策树整体的损失函数或代价函数。(决策树生成只考虑了通过提高信息增益对训练数据进行更好的拟合,而决策树剪枝通过优化损失函数还考虑了减少模型复杂度。
决策树生成学习局部的模型,而决策树剪枝学习整体的模型。
代价函数 : Ca(T)=C(T)+a|T| =模型与训练数据的预测误差 + a*模型复杂度(较大的a促使选择较简单的模型) (C(T)一般有两种衡量方法,一种是熵,一种是基尼指数。)
算法步骤:输入:生成算法生成的整棵树、参数a。 输出:修剪后的子树。
1)计算每个节点的经验熵;2)递归的从树的叶节点向上回缩;
3)计算叶节点回缩到父节点的树的损失函数,和没回缩时的树的损失函数。如果回缩后更小,则进行剪枝,将父节点作为新的叶子结点。4)重复,直到不能继续,得到损失函数最小的子树
五、随机森林:
通过两个随机、构建多个次优树:
1)样本随机:随机选择样本,通过有放回的抽样,重复的选择部分样本来构建树;
2)特征随机:构建树的过程中,每次考察部分特征,不对树进行剪枝;
优点:训练速度快,不易过拟合;提高了泛化性能。
缺点:新增样本数据,需要调整整棵树。
原创粉丝点击