机器学习之决策树算法

决策树(decision tree)

机器学习中,决策树是一个预测模型;他表明的是对象属性与对象值之间的一种映射关系。树中每一个节点表示某个对象,而每一个分叉路径则表明的某个可能的属性值,而每一个叶结点则对应从根节点到该叶节点所经历的路径所表示的对象的值。决策树仅有单一输出,若欲有复数输出,能够创建独立的决策树以处理不一样输出。 数据挖掘中决策树是一种常常要用到的技术,能够用于分析数据,一样也能够用来做预测。
从数据产生决策树的机器学习技术叫作决策树学习,通俗说就是决策树。算法

决策树可能有多种创建方式:
clipboard.png机器学习

clipboard.png

如何选择最优的决策树?
先引入一个信息熵(information entropy)的概念:
信息熵是度量样本集合纯度经常使用的一种指标,他的值越小,则当前样本集合S的纯度越高。Ent(S)的最小值为0,最大值为log(C)
clipboard.png当前样本集合中第i类样本所占比例为pi。post

信息增益(information gain)
假定离散属性A有个V可能的取值,若使用A对样本集合S进行划分,会产生V个分支节点,其中第v个分支节点包含了S中全部在属性A上取值为Sv的节点,记为|Sv|。咱们能够根据上式计算出|Sv|的信息熵,再根据样本数的不一样赋值权重,即样本数越多的分支节点的影响越大,因而能够计算出属性A对样本集S进行划分所得到的信息增益
clipboard.png
通常而言,信息增益越大,则意味着使用属性A来进行划分所得到的纯度提高越大。咱们选择当前集合下信息增益最大对应的属性来进行划分。性能

剪枝(pruning)

剪枝是决策树学习算法中对付“过拟合”的主要手段。在决策树学习中,为了尽量正确分类样本,结点划分过程将被不断重复,有时形成分支过多,致使出现因训练样本学得太好了,以致于把训练集自身的一些特色当作全部数据都具备的通常性质而致使过拟合。学习

预剪枝(prepruning)

在决策树生成过程当中,对每一个结点在划分前进行估计,若当前结点的划分不能带来决策树泛化性能提高,则中止划分并将当前结点标记为叶结点。测试

方法:

判断决策树泛化性能是否提高可以使用留出法:即预留一部分数据用做“验证集”以进行性能评估,以对划分先后的泛化性能进行估计。若是划分后验证集精度降低,则禁止划分。spa

优缺点:

预剪枝虽然使决策树下降了过拟合的风险,减小了训练时间和测试时间的开销。但有些分支的当前划分虽然不能提高泛化性能,甚至可能致使泛化性能暂时降低,但在其基础上的后续划分可能致使性能显著提升。预剪枝是贪心算法,带来了欠拟合的风险。3d

后剪枝(postpruning)

方法:

先在训练集生成一颗完整的决策树,而后自底向上的对非叶结点进行考察,若将该节点对应的子树替换为叶结点能提高泛化性能,则将该子树替换为叶结点。code

优缺点:

通常情形下,后剪枝决策树的欠拟合风险很小,泛化性能每每因为预剪枝决策树。但后剪枝过程是生成彻底决策树以后进行的,且须要由底向上对非叶结点进行逐一考察,其训练时间开销相对较大。orm

参考资料:
维基百科
http://www.xuetangx.com/cours...
机器学习 周志华

相关文章
相关标签/搜索