分类算法-决策树分类

决策树分类

  数据分类的基本流程:
两步:
 (1)对一个类别已经确定的数据集创建模型。其中用于创建模型的数据称为训练集,训练集中单个元组称为训练样本。
 (2)使用创建的模型将类别未知的元组归入某个或某几个类中。
评估分类模型的标准:预测准确率;模型的创建速度和使用速度;强壮性;伸缩性;可解释性。

1.基本思想

  其基本算法是“贪心”算法,采用自上而下分而治之的方法。最初,所有的数据都位于根节点,然后利用所选属性递归地对元组集合进行分裂,划分到同一节点上的数据属于同一个类别,继续对节点数据进行分裂直到没有属性可选时停止分裂,形成决策树。
  属性的选择是基于一个启发式规则或者一个统计的度量,如信息熵。每次选择的属性要求形成的数据分组之间的“差异”最大。一般所选的属性都是分类属性,如果属性是连续的,需要进行离散化处理。

2.决策树的特点

  伸缩性好;
  分类速度比较快;
  分类的准确率较高;
  具有相对快捷的学习速度;
  能够转换成容易理解的分类规则;
  擅长处理非数值型数据;
  数据挖掘查询可以容易地用于说明增强的决策树方法。

3.二叉决策树算法与分类规则的生成

  二叉树CART算法的基本过程:
 (1)开始把训练数据归入某个结点。
 (2)选择训练数据最佳分类的一个检验特征值进行数据分裂,然后进入到下一个结点。
  当下列条件之一满足时,递归分裂停止:不再有可进一步分裂的特征;已没有样本分裂某个检验特征。

4.决策树分类算法

ID3算法
基本步骤:
  输入:训练样本samples,由离散值属性表示;候选属性的集合attribute_list。
  输出:一棵决策树。
 (1)创建结点N;
 (2)If samples都在同一类C,那么返回N作为叶结点,以类C标记。
 (3)If attribute_list为空,那么返回N作为叶结点,标记为samples中最普通的类。
 (4)选择attribute_list中具有最高信息增益的属性test_attribute;标记结点N为test_attribute;
 (5)For每个test_attribute中的已知值ai,由结点N长出一个条件为test_attribute = ai的分支;
 (6)设si是samples中test_attribute = ai 的样本的集合。
  If si为空Then加上一个叶结点,标记为samples中最普通的类;
  Else 加上一个由Gen_Des_Tree(si,attribute_list_test_attribute)返回的结点。

  Quinlan在ID3算法的基础上发展出C4.5算法。
基本步骤:
 (1)假设T为训练实例集。
 (2)选择一个最能区分T中实例的属性。
 (3)创建一个树结点,它的值为所选择的属性。创建该结点的子链,每个子链代表所选属性的一个唯一值。使用子链的值,进一步将实例细化为子类。
 (4)对于步骤(3)所创建的每个子类:①如果子类中的实例满足预定义的标准,或者,如果树的这条路径的剩余可选属性集为空,为沿此决策路径的新实例指定类别;②如果子类不满足预定义的标准并且至少有一个属性能进一步细分树的路径,设T为当前子类实例集合,返回步骤(2)。

该算法终止树的一条路径的两种可能为:
 (1)如果沿着一个给定分支的实例满足一个预定义的标准。
 (2)没有一个属性能继续树的分裂过程。

CART算法与C4.5算法的区别:
 (1)不管属性是分类的还是数值的,CART总是执行数据的二元分裂。
 (2)CART调用检验数据以帮助修剪并由此泛化已创建的二叉树,而C4.5算法仅使用训练数据来创建最后的树结构。

5.决策树属性的选取

C4.5算法选择属性的方法:
  增益值最大的属性用来进一步细分树结构。
属性的信息增益计算方法:
  设S是训练样本的集合,其中每个样本的类标号都是已知的。假定有m个类,集合S中类别C的记录个数是个,i=1,…,m。一个给定的样本分类所需的期望信息是:
在这里插入图片描述
设属性A具有值。属性A可以用来对S进行分组,将S分为子集,其中包含S中值为的那些样本。设包含类的个样本。根据A的这种分裂的期望信息称为属性A的熵,为
在这里插入图片描述
A的信息增益为
在这里插入图片描述
  实际应用中,首先计算每个属性的信息增益,然后利用得到的信息增益值对属性进行排序。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值