• 决策树


    在众多分类算法中,决策树应该是最基本的一种算法了,也是相对比较简单的一种算法。


    决策树的介绍:

    首先,什么叫做决策树?决策树用于解决什么样的问题?

    先看一个例子:
    现有某银行客户拖欠贷款的历史数据,如表 3-1。现在一个新客户{ no, married, 80K, ? } 前来申请贷款,请你根据银行的历史数据判断这个人会不会拖欠贷款?
    这里写图片描述

    当然,客户最终是否会拖欠贷款,我们是无法100%确定的。但我们可以根据银行的历史数据,尽可能准确地做出预判。
    依据上表的数据,我们可以构建以下这个树状模型。其中决策节点代表各个属性值(如年收入、是否有房等),叶子节点代表是否会拖欠贷款。

    这里写图片描述
    这就是决策树。它符合表3-1 中的的大部分数据,所以它具有一定的准确性。
    将新客户的数据 { no, married, 80K, ? } 代入进去,得到结果“no”。所以预判的结果是:此客户不会拖欠贷款,可以通过申请。


    决策树的构建 :

    既然决策树是一种树形的结构,那么我们就应该可以用建造一般树的方法来构建决策树。一般树的建造方法有两种:一种是用堆栈,另一种是用递归。对于构建决策树,同样两种方法都可以,不过一般选用后者。

    另外的,决策节点哪个在先,哪个在后,构造出来的决策树都会不一样。例如把“婚姻状况”放在最上面,把“年收入”和“是否有房”放在下面,构造出来的决策树肯定不一样,所达到的预判能力也会不一样。那么怎样选择决策节点,才能构造出更好的决策树的呢?这就是决策树的属性选择问题了:
    属性选择的标准有两个:信息增益和Gini系数。(关于这两个名词,都只是一个指标,我们只需要知道它们“做什么用”和“怎么求”就行了。具体的请参见相应的算法。)
    根据不同的属性选择标准,我们把决策树分为 ID3(使用信息增益)、C4.5(使用信息增益率)、CART (使用Gini系数)等算法。

    用以上方法构造的决策树是完全生长的,然而这样反倒不好。首先,显得臃肿!其次,决策树是根据一定量的数据实例训练出来的,决策树的层次太深,导致某些叶子节点的实例很少,支持度太低,从而导致整个决策树的预测能力变弱。
    所以对构建的树要选择合适的大小,方法也是有两个:
    一个是在构建树的时候添加限定条件,如限定最小划分实例数、限定最大树深、划分阈值等。
    另一个是在对完全生长的树进行减枝。方法是对决策树进行评估,如果去掉某孩子树后整个决策树表现更好,则把该孩子树减掉。



    用不同方法构建的决策树,达到的预测效果也会不同,更多关于ID3C4.5CART,可点击进入相关博文。

  • 相关阅读:
    简单小练习_阅读稍后提醒
    简单小练习_切换工作空间
    简单小练习_自动拉微信群
    简单小练习_定制群发微信消息
    简单小练习_文本搜索自动解压并删除文件
    简单小练习_自动收集文件到文件夹
    简单小练习_文本搜索
    获取微博广告博文数据
    最大堆
    Windows安装部署Tensorflow object detect过程中的问题处理
  • 原文地址:https://www.cnblogs.com/Bone-ACE/p/4558875.html
Copyright © 2020-2023  润新知