机器学习算法 day04_决策树分类算法及应用
课程大纲
决策树分类算法原理
决策树分类算法案例
决策树算法概述
决策树算法思想
决策树构造
算法要点
案例需求
Python 实现
决策树的持久化保存
课程目标:
1、理解决策树算法的核心思想
2、理解决策树算法的代码实现
3、掌握决策树算法的应用步骤:数据处理、建模、运算和结果判定
1. 决策树分类算法原理
1.1 概述
决策树(decision tree) ——是一种被广泛使用的分类算法。
相比贝叶斯算法,决策树的优势在于构造过程不需要任何领域知识或参数设置
在实际应用中, 对于探测式的知识发现,决策树更加适用
1.2 算法思想
通俗来说, 决策树分类的思想类似于找对象。 现想象一个女孩的母亲要给这个女孩介绍男朋 友,于是有了下面的对话:
女儿:多大年纪了?
母亲: 26。
女儿:长的帅不帅?
母亲:挺帅的。
女儿:收入高不?
母亲:不算很高,中等情况。
女儿:是?
母亲:是,公务员不在税务局上班呢。
女儿:那好,我去见见。
这个女孩的决策过程就是典型的分类树决策。
实质:通过年龄、长相、收入和是否公务员对将男人分为两个类别:见和不见
假设这个女孩对男人的要求是: 30 岁以下、长相中等以上并且是高收入者或中等以上收入 的公务员,那么这个可以用下图表示女孩的决策逻辑
上图完整表达了这个女孩决定是否见一个约会对象的策略,其中:
令 绿色节点表示判断条件
令 橙色节点表示决策结果
令 箭头表示在一个判断条件在不同情况下的决策路径 图中红色箭头表示了上面例子中女孩的决策过程。
这幅图基本可以算是一颗决策树,说它“基本可以算”是因为图中的判定条件没有量化,如 收入高中低等等, 还不能算是严格意义上的决策树, 如果将所有条件量化, 则就变成真正的 决策树了。
决策树分类算法的关键就是根据“先验数据”构造一棵最佳的决策树,用以预测未知数据 的类别
决策树: 是一个树结构(可以是二叉树或非二叉树)。 其每个非叶节点表示一个特征属性上 的测试,每个分支代表这个特征属性在某个值域上的输出,而每个叶节点存放一个类别。 使 用决策树进行决策的过程就是从根节点开始,测试待分类项中相应的特征属性, 并按照其值 选择输出分支,直到到达叶子节点,将叶子节点存放的类别作为决策结果。
1.3 决策树构造
1.3.1 决策树构造样例
假如有以下判断苹果好坏的数据样本:
好苹
好苹果
1
1
0
0
样本
0
1
2
3
红
1
1
0
0
大
1
0
1
0
样本中有 2 个属性, A0 表示是否红苹果。 A1 表示是否大苹果。假如要根据这个数据样本构 建一棵自动判断苹果好坏的决策树。
由于本例中的数据只有 2 个属性,因此,我们可以穷举所有可能构造出来的决策树,就 2 棵,如下图所示:
显然左边先使用 A0 (红色)做划分依据的决策树要优于右边用 A1 (大小)做划分依据的决 策树。
当然这是直觉的认知。 而直觉显然不适合转化成程序的实现, 所以需要有一种定量的考察来
评价这两棵树的性能好坏。
决策树的评价所用的定量考察方法为计算每种划分情况的信息熵增益:
如果经过某个选定的属性进行数据划分后的信息熵下降最多,则这个划分属性是最优选择
1.3.2 属性划分选择(即构造决策树)的依据
熵
熵: 信息论的奠基人香农定义的用来信息量的单位。简单来说,熵就是“无序, 混乱”的程度。 通过计算来理解: 1、原始样本数据的熵:
样例总数: 4
好苹果: 2
坏苹果: 2
熵: -(1/2 * log(1/2) + 1/2 * log(1/2)) = 1
信息熵为 1 表示当前处于最混乱,最无序的状态。
2、两颗决策树的划分结果熵增益计算
树 1 先选 A0 作划分,各子节点信息熵计算如下:
0 ,1 叶子节点有 2 个正例, 0 个负例。信息熵为: e1 = -(2/2 * log(2/2) + 0/2 * log(0/2)) = 0。
2,3 叶子节点有 0 个正例, 2 个负例。信息熵为: e2 = -(0/2 * log(0/2) + 2/2 * log(2/2)) = 0。
因
因此选择 A0 划分后的信息熵为每个子节点的信息熵所占比重的加权和: E = e1*2/4 +
e2*2/4 = 0。
选择 A0 做划分的信息熵增益 G (S,A0) =S - E = 1 - 0 = 1.
事实上,决策树叶子节点表示已经都属于相同类别,因此信息熵一定为 0。
树 2 先选 A1 作划分,各子节点信息熵计算如下:
0 ,2 子节点有 1 个
您可能关注的文档
- 01_python_(python语言_数据类型详解).docx
- 02-机器学习_第2天(贝叶斯分类算法与应用).docx
- 01_流式计算基础_第1天(Storm是什么、Storm核心组件、Storm编程模型).docx
- 03-机器学习_(贝叶斯分类算法与应用).docx
- 03_基础增强_第3天(高可用web架构)_讲义.docx
- 04_基础增强_第4天(java高级特性增强)_讲义.docx
- 03_流式计算基础_第1天(Kafka集群安装部署、Kafka生产者、Kafka消费者).docx
- 05_基础增强_第5天(轻量级RPC框架开发)_讲义.docx
- 05_流式计算基础_第2天(Storm目录树、任务提交、消息容错).docx
- 06_流式计算基础_第2天(Kafka负载均衡、Kafka自定义Partition、Kafk文件存储机制).docx
- 高考化学一轮复习考点讲练测第02讲 物质的量浓度与溶液的配制(练习)(原卷版).docx
- 高考化学一轮复习考点讲练测第06讲 离子共存、离子的检验与推断(练习)(原卷版).docx
- 高考化学一轮复习考点讲练测第26讲 化学平衡常数及转化率 反应方向及调控(练习)(原卷版).docx
- 高考化学一轮复习考点讲练测第03讲 化学计算的常用方法(练习)(原卷版).docx
- 高考化学一轮复习考点讲练测第30讲 盐类水解(练习)(解析版).docx
- 高考化学一轮复习考点讲练测第12讲 氯及其化合物(练习)(解析版).docx
- 高考化学一轮复习考点讲练测第一章 化学计量(测试)(原卷版).docx
- 高考化学一轮复习考点讲练测第五章 物质结构与性质 元素周期律 (测试)(原卷版).docx
- 兴业证券-高油价如何影响美国通胀和联储行动.pdf
- 国信证券-小鹏汽车-W(09868.HK)小鹏第二代VLA开启推送,技术与新品周期共振.pdf
原创力文档

文档评论(0)