【机器学习笔记】决策树

本文学习自 https://zhuanlan.zhihu.com/ml-jack

决策树

1、决策树是什么

是一种基本的分类与回归方法。
在这里插入图片描述
长方形代表判断模块(decision block),椭圆形成代表终止模块(terminating block),表示已经得出结论,可以终止运行。
决策树由结点和有向边构成。结点可分为内部结点(非叶结点)和叶子结点。内部结点表示一个特征或属性,叶结点表示一个类。
可以把决策树从根结点到叶子结点的路径,看作if-then规则的过程。路径上内部结点的特征对应着规则的条件,而叶结点的类对应着规则的结论。决策树的路径或其对应的if-then规则集合具有一个重要的性质:互斥并且完备。也就是说,对于一个实例,有且只有一条路径可以从根走到叶子结点。

使用决策树的过程:

  1. 收集数据:可以使用任何方法。比如想构建一个相亲系统,我们可以从媒婆那里,或者通过参访相亲对象获取数据。根据他们考虑的因素和最终的选择结果,就可以得到一些供我们利用的数据了。
  2. 准备数据:收集完的数据,我们要进行整理,将这些所有收集的信息按照一定规则整理出来,并排版,方便我们进行后续处理。
  3. 分析数据:可以使用任何方法,决策树构造完成之后,我们可以检查决策树图形是否符合预期。
  4. 训练算法:这个过程也就是构造决策树,同样也可以说是决策树学习,就是构造一个决策树的数据结构。
  5. 测试算法:使用经验树计算错误率。当错误率达到了可接收范围,这个决策树就可以投放使用了。
  6. 使用算法:此步骤可以使用适用于任何监督学习算法,而使用决策树可以更好地理解数据的内在含义。

2、决策树的准备工作

(1)特征选择
特征选择:要选的特征,是对分类有作用的特征,没用的特征可以抛弃。
那么如何确定这个特征有没有用呢?一般选择信息增益
什么是信息增益呢?在划分数据集之前之后信息发生的变化成为信息增益,知道如何计算信息增益,我们就可以计算每个特征值划分数据集获得的信息增益,获得信息增益最高的特征就是最好的选择。

(2)熵定义为信息的期望值。
为了计算熵,我们需要计算所有类别所有可能值包含的信息期望值(数学期望),通过下面的公式得到:

n是分类的数目。熵越大,随机变量的不确定性就越大。
当熵中的概率由数据估计得到时,此时称为经验熵。(数据估计就是,可以直接由样本数据得到的概率)
在这里插入图片描述

条件熵 H(Y|X)表示在已知随机变量X的条件下随机变量Y的不确定性
定义X给定条件下Y的条件概率分布的熵对X的数学期望:
在这里插入图片描述

信息增益
定义特征A对训练数据集D的信息增益 g(D,A),集合D的经验熵 H(D),特征A给定条件下D的经验条件熵H(D|A)。
因此信息增益定义为:
在这里插入图片描述

3、决策树的构建

构造决策树的算法有很多,这里先讲ID3算法。
ID3算法的核心是在决策树各个结点上对应信息增益准则选择特征,递归地构建决策树。
具体过程:从根结点开始,对结点计算所有可能的特征的信息增益,选择信息增益最大的特征作为结点的特征,然后建立子节点;再对子节点递归调用以上方法,构建决策树;直到所有特征的信息增益均很小或没有特征可以选择为止。
当分出来的子结点中所包含的样本属于同一类,就当作一个叶结点,不需要再划分。不属于同一类就继续计算信息增益来划分。

4、决策树的分类

输入数据,构建成实例向量;比较测试数据与决策树上结点的数值,进入叶子结点后,该叶子结点所属的类型就是该实例的类型。

5、决策树的存储

使用pickle.dump存储决策树。
使用pickle.load加载决策树

6、优缺点

优点:

  • 易于理解和解释。决策树可以可视化。
  • 几乎不需要数据预处理。其他方法经常需要数据标准化,创建虚拟变量和删除缺失值。决策树还不支持缺失值。
  • 可以同时处理数值变量和分类变量。
  • 可以处理多值输出变量问题。
  • 使用白盒模型。如果一个情况被观察到,使用逻辑判断容易表示这种规则。相反,如果是黑盒模型(例如人工神经网络),结果会非常难解释。

缺点:

  • 容易过拟合,需要修剪。
  • 决策树可能是不稳定的,因为即使非常小的变异,可能会产生一颗完全不同的树。
  • 概念难以学习,因为决策树没有很好的解释他们。
发布了12 篇原创文章 · 获赞 5 · 访问量 217
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 深蓝海洋 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览