码迷,mamicode.com
首页 > 其他好文 > 详细

决策树初探

时间:2016-04-11 10:11:15      阅读:103      评论:0      收藏:0      [点我收藏+]

标签:

决策树是一种常用的监督学习方法,它根据输入的训练集各样本的特征向量和标签从上到下建立一棵树,每个非叶结点是一个特征,每个叶结点是一个标签,结点之间的边是特征的一个取值。决策的过程就像程序流经层层嵌套的if-else语句,最后进到一个不再细分的块(叶结点)里,从而预测出样本的归类。

决策树的优点是简单实用、速度快、白盒决策(即人可以理解模型的决策过程,相应的像深度学习模型的决策过程人就无法理解),缺点是、、启发式建树往往找不到最优解;决策过程很“硬”,只根据信息增益来选择特征,且特征用过就不能“回头”,特征向量很大时问题可能更明显;容易造成过拟合。

建树的过程,本质上就是不断挑选特征作为“分叉标准”。我们当然希望能找出一颗“全局最优”的决策树,但很遗憾这是一个NP完全问题。因此只好退而求其次,采用启发式的学习方法,即每次都在当前剩下的特征里挑选一个“最能将训练集正确划分”的特征作为下一个结点,挑选的标准是来自信息论的“信息增益”等概念。所谓信息增益,即在获得这个信息之后,整个系统的混乱未知程度(熵)下降的大小。

决策树有三种生成算法,ID3、C4.5和CART,前两种是针对分类问题的,第三种既可以用于分类问题,也可用于回归问题。

一、ID3算法

采用信息增益作为特征选取的标准。伪代码如下:

1.初始有一个样本分组,即训练集全体样本;每组有一个对应的特征集合,初始样本分组对应的特征集合为全体特征。

2.若分组里绝大部分样本都处在同一个分类,或分组对应的特征集合为空,则创造一个叶结点,以样本投票决定该结点的标签名;

3.逐个计算特征集合里各特征的信息增益,若最大的信息增益未达到阈值,则创造叶结点;若达到了阈值,则以信息增益最大的特征为非叶结点,按特征取值将样本分组,并将该特征从特征集合里剔除,剩下的特征集合作为各新分组的对应特征集合。然后每组递归执行2、3步。

二、C4.5算法

与ID3几乎完全一样,唯一的区别是把信息增益换成了信息增益比,原因是信息增益的计算方法有利于取值较多的特征。信息增益比用特征本身的经验熵去除它所带来的信息增益,矫正了上述问题。

三、CART算法

CART全称Classification And Regression Tree,既可用于分类问题,也可用于回归问题。

CART最大的特点是,它构建的是二叉树。以分类树为例,其生成算法如下:

1.对结点上的特征集上的每个特征A及其每个取值a,根据样本对于A=a的测试结果为“true"或"false"将样本分为两组,并计算其基尼指数。

2.依基尼指数最小的特征相应的切分点,从现结点生成两个子节点,将现结点上的样本分配到子节点内。

递归执行1、2直到满足停止条件。停止条件包括:样本个数小于阈值、样本集基尼指数小于阈值(基本属于同一类)、没有更多特征可选等。

 

决策树初探

标签:

原文地址:http://www.cnblogs.com/leegent/p/5344367.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!