【机器学习】实验二 决策树

本次的博客任务:

  1. 描述决策树的生成算法的原理,流程(包含决策树生成、剪枝等)
  2. 针对自制数据库(划分成训练数据、测试数据),构造决策树并可视化。重点体现在实验结果分析
    实验任务:
    1.自建数据集,数据量不少于100条,属性不少于6个(不含决策属性),样本数量、属性越多越好
    2.分别采用信息增益、信息增益率、基尼指数来建造决策树,
    3.实现树的可视化,同时评估精度,分析原因
    4.博客需体现算法流程,以及原理

1.决策树简介

  决策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运用概率分析的一种图解法。由于这种决策分支画成图形很像一棵树的枝干,故称决策树。在机器学习中,决策树是一个预测模型,他代表的是对象属性与对象值之间的一种映射关系。决策树也是最经常使用的数据挖掘算法。它之所以流行,一个很重要的原因就是使用者基本上不用了解机器学习算法,也不用深究它是如何工作的。

2.决策树算法基本思想

  决策树(decision tree)算法解决的决策问题(分类问题),它是是一个树结构(可以是二叉树或非二叉树)。其每个非叶节点表示一个特征属性上的测试,每个分支代表这个特征属性在某个值域上的输出,而每个叶节点存放一个类别。

使用决策树进行决策的过程就是从根节点开始,测试待分类项中相应的特征属性,并按照其值选择输出分支,直到到达叶子节点,将叶子节点存放的类别作为决策结果。决策树学习的目的是为了产生一棵泛化能力强,即处理未见示例能力强的决策树

一个基本的决策树由结点和有向边组成,结点有内部结点和叶结点俩种类型,内部结点表示一个特征,叶节点表示一个类,表示如下:

来自周志华老师西瓜书
(来自周志华老师的西瓜书)

3.决策树构造

  在构造决策树时,我们需要解决的问题是当前数据集上哪个特征在划分数据分类是起决定性作用。为了找到决定性的特征,划分出最好的结果,我们必须评估每个特征。完成测试之后,原石数据集就被划分为几个数据子集。这些数据子集会分布在第一个决策点的所有分支上。如果某个分支下的数据属于同一类型,则代表当前数据已经正确地划分数据分类,无需进一步对数据集进行分割。如果数据子集内的数据不属于同一类型,则需要重复划分数据子集的过程。
  创建分支的伪代码函数如下所示:
  检测数据集中的每个子项是否属于同一分类:
    If so return 类标签;
    Else
      寻找划分数据集的最好特征
      划分数据集
      创建分支节点
        for每个划分的子集
          调用函数createBranch并增加返回结果到分支节点中
      return 分支节点

3.1算法流程

 1.收集数据:可以使用任何方法。
 2.准备数据:树构造算法只适用于标称型数据,因此数值型数据必须离散化。
 3.分析数据:可以使用任何方法,构造树完成之后,我们应该检查图形是否符合预期。
 4.训练算法:构造树的数据结构。
 5.测试算法:使用经验树计算错误率。
 6.使用算法:此步骤可以适用于任何监督学习算法,而使用决策树可以更好的理解数据的内在含义。

3.2划分选择

  决策树学习的关键在于如何选择最优划分属性。一般而言,随着划分过程不断进行,我们希望决策树的分支结点所包含的样本尽可能属于同一类别,即结点的“纯度”(purity)越来越高。
决策树经典的属性划分方法一般有三种,分别是信息增益,信息增益率和基尼指数。

3.2.1信息增益

  离散属性a有V个可能的取值{a1, a2, …, aV},用a来进行划分,则会产生V个分支结点,其中第v个分支结点包含了D中所有在属性a上取值为av的样本,记为Dv。则可计算出用属性a对样本集D进行划分所获得的“信息增益”:

G a i n ( D , a ) = H ( D ) − ∑ i = 1 V ∣ D v ∣ ∣ D ∣ ⋅ H ( D v ) Gain(D,a)=H(D)−\sum_{i=1}^{V}\frac{|D^{v}|}{|D|}\cdot H(D^{v}) Gain(D,a)=H(D)i=1V

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值