您的位置:首页 > 其它

机器学习---决策树

2016-06-16 10:42 302 查看
   


看见这么一个图了吗?这就是决策树,很形象很生动很具体,所以决策树是什么?决策树是一类常见的机器学习方法,反正我理解就是yes no的判断嘛。 决策树是一个树结构(可以是二叉树或非二叉树)。其每个非叶节点表示一个特征属性上的测试,每个分支代表这个特征属性在某个值域上的输出,而每个叶节点存放一个类别。使用决策树进行决策的过程就是从根节点开始,测试待分类项中相应的特征属性,并按照其值选择输出分支,直到到达叶子节点,将叶子节点存放的类别作为决策结果。

   下面直接说决策树的重点,就是划分选择,比如看上面那个决策树的图,你怎么选择划分属性?瞎选?还是看心情?显然都不行,因为选择属性的好坏,会直接影响模型的复杂度与有效性。所以,这里提出一个名词叫做最优划分属性。

   通俗的讲,我们的目的是随着划分过程的不断进行,希望决策树的分支节点所包含的样本尽可能属于同一类别(这句话很好理解,就是我需要尽快划分完毕,同一个分支下都是一个类别,岂不是美美哒),专业点说就是希望节点的纯度越来越高。

   信息熵是度量样本集合纯度最常用的一种指标,假定当前样本集合D中第i类样本占的比例为P(i)(k=1,2,3,,,m),那么D的信息熵为

,信息熵的值越小,证明D的纯度越高。

......................................................................................................

下面介绍两种划分选择,ID3,C4.5

ID3采用的是信息增益划分标准,好吧,还是上图吧,公式不好打啊...................



剪枝处理

   剪枝是决策树学习算法解决过拟合的主要手段,由于决策树学习中,结点划分过程不断重复,会造成决策树分支过多,也就是造成了过拟合。举个通俗的例子,比如我们去训练模型判断是否为某某叶子,过拟合就是,模型判断出带齿轮的才是叶子,显然这是训练过度。欠拟合就是模型判断绿色都是叶子,现在这也是不对的。可以通过主动去掉一些分支来降低过拟合的风险。

    决策树的剪枝有预剪枝和后剪枝。预剪枝是在决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化能力的提升,则停止划分并将当前结点标记为叶节点。后剪枝是先从训练集生成一棵完整的决策树,然后自底向上的对非叶结点进行考察若将该结点的子树替换为叶节点能带来决策树泛化性能的提升,那么将该子树替换成叶节点。

    如何判断决策树泛化性能能否提升??可以采用留出法,一部分数据作验证集来评估。

    一般情况下,后剪枝欠拟合风险很小,泛化能力往往优于预剪枝决策树,但是后剪枝过程是在生成完全决策树之后进行的,而且要自底向上对树中的所有非叶结点进行逐一考察,因此它的训练时间开销比未剪枝和预剪枝决策树大很多。

    需要补充一点的是,决策树不仅仅可以处理离散属性,也是可以处理连续属性。比如密度,含糖率这些都是连续变量。可以采用二分法,就是将连续属性值从小到大排序,然后选出划分点集合[a(i)+a(i+1)]/2,如果有10个连续属性值,这样可以得到9个划分点,然后根据划分点,选择最优属性,这里的步骤和前面离散属性类似。

   好啦,决策树的知识差不多就这样概括好了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  决策树