决策树(西瓜书学习)

算法是死的,思想才是活的!

1. 基本流程

决策树(decision tree):一般的,一棵决策树包含一个根结点、若干个内部结点和若干个叶结点;叶结点对应于决策结果,其他每个结点则对应于一个属性测试;每个结点包含的样本集合根据根据属性测试的结果划分到子结点中;根结点包含样本全集。

从根结点到每个叶结点的路径对应了一个判定测试序列。决策树的目的是为了产生一棵泛化能力强,即处理未见示例能力强的决策树,基本流程遵循“分而治之”。

决策树的生成是一个递归的过程,有三种情况会导致递归返回:

  1. 当前节点包含的样本全属于同一类别(好瓜/坏瓜),无需划分
  2. 当前属性集为空,或所有样本在所有属性(颜色/形状/敲声)上取值相同,无法划分
  3. 当前结点包含的样本集合为空,不能划分

在情况2下,把当前结点标记为叶结点,并将其类别设定为该结点所含样本最多的类别;
在情况3下,把当前结点标记为叶结点,将其类别设定为其父结点所包含样本最多的类别。

2. 划分选择

2.1 信息增益

信息熵:度量样本集合纯度的最常用指标。
(大白话理解:样本集合的分类分布越悬殊,集合的纯度越高。)
(eg:样本集合D中属于好瓜类别的有99个,属于坏瓜类别的有1个,说明集合D的纯度很高)

信息增益:原样本集合的信息熵减去用属性 a 划分后每个子集合信息熵的加权和。
信息增益越大,意味着用属性 a 进行划分获得的纯度提升越大。
(大白话理解:属性 a 越是能把不同类别的样本划分开越好,划分的越开就是纯度越大)
(eg:集合D用属性a(颜色)划分为集合G(绿色)、B(蓝色),其中G中99个好瓜,1个坏瓜,B中99个坏瓜,1个好瓜。说明用a(颜色)这个属性划分集合所获得的信息增益很大)
【著名的ID3决策树学习算法就是以信息增益为准则来选择划分属性的】

信息增益的缺点:
若编号也作为划分属性,可知其信息增益最大,因为划分后的每个分支结点仅包含一个样本,纯度最大,显然这样的决策树不具有泛化能力。由此可知,信息增益对可取值多的属性有所偏好,提出了增益率。

2.2 增益率

增益率:信息增益除以属性 a 的固有值。
属性 a 的可能取值数目越多,“固有值”通常会越大。故,增益率准则对可能取值数目较少的属性有所偏好。
【著名的C4.5决策算法使用了一个启发式:先从侯选属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的】

2.3 基尼指数

基尼指数:可以度量数据集的纯度。
属性 a 的基尼指数定义:
【著名的CART决策树 就是选择使得划分后基尼指数最小的属性作为最优划分属性】

3. 剪枝处理

决策树中的过拟合: 为了尽可能正确分类训练样本,结点划分过程将不断重复,有时会造成决策树分支过多,这时就可能因为训练样本学的“太好”,以至于把一些训练样本自身的特点当作所有数据都具有的一般性质而导致过拟合。

剪枝处理: 剪枝是决策树对付“过拟合”的手段
剪枝手段:
1)预剪枝(prepruning)
定义:在决策树生成过程中,对每个结点在划分前进行估计,若当前结点的划分不能带来决策树泛化性能的提升,则停止划分并将当前节点标记为叶结点;
评价:预剪枝使得决策树很多分支都没有“展开”,降低了过拟合风险,但预剪枝这种基于”贪心“本质禁止分支展开却带来了欠拟合的风险。
2)后剪枝(post-pruning)
定义:决策树生成后,自底向上对非叶结点进行考察,若将该叶结点对应的子树替换为叶结点能带来决策树泛化性能的提升,则将该子树替换为叶结点。
评价:后剪枝通常比预剪枝保留了更多的分支,一般情况下,后剪枝决策树的欠拟合风险很小,泛化性能往往优于预剪枝决策树,但后剪枝时间开销要大很多。

泛化性能的判断: 用性能评估方法,比如留出法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/479964.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

动手做个DialoGPT:生成式多轮对话模型

文 | 苏剑林编 | 兔子酱前段时间刷Arixv的时候,发现清华大学开源了一个大规模的中文闲聊语料库LCCC,从开源的文件上来看,这可能是目前开源的数量最大、质量最好的闲聊语料库了,而且还包含了部分多轮对话聊天,总的来说可…

搜索引擎背后的数据结构和算法

文章目录1. 整体系统介绍2. 搜集2.1 待爬取网页链接文件:links.bin2.2 网页判重文件:bloom_filter.bin2.3 原始网页存储文件:doc_raw.bin2.4 网页链接及其编号的对应文件:doc_id.bin3. 分析3.1 抽取网页文本信息3.2 分词并创建临时…

mysql: order by, group by ,having, select, where 执行 顺序

where:数据库中常用的是where关键字,用于在初始表中筛选查询。它是一个约束声明,用于约束数据,在返回结果集之前起作用。 group by:对select查询出来的结果集按照某个字段或者表达式进行分组,获得一组组的集合&#x…

论文浅尝 | DKN: 面向新闻推荐的深度知识感知网络

笔记整理:仲亮靓,东南大学硕士研究生,研究方向是基于知识图谱的推荐系统动机新闻文本的语言非常凝练,其中包含了很多实体和常识知识。但目前的新闻个性化推荐方法都没有利用这些外部知识,也没有使用新闻之间潜在的知识…

聊聊工业界做机器学习的里程碑

文 | 吴海波编 | YY阅读说明,本文的机器学习领域限制于互联网搜索、推荐、广告场景,仅限于个人观点。2017年,我和团队的几个核心去了趟北京,找了各大互联网公司一线实战的同学,交流各自在机器学习上的经验。这次交流让…

直通BAT JVM必考题:Minor GC、Major GC、Full GC的区别

Java面试过程,JVM属于必考题系列: 直通BAT必考题系列:深入详解JVM内存模型与JVM参数详细配置 直通BAT必考题系列:JVM的4种垃圾回收算法、垃圾回收机制与总结 直通BAT必考题系列:7种JVM垃圾收集器特点,优…

matplotlib绘制多张图、多子图、多例图

绘制多图 关键: fig plt.figure(1) 表示新建第几个图 import matplotlib.pyplot as pltfig plt.figure(1) plt_rec_loss [1,2,3,4,5,6] plt_rec_recall [4,3,6,5,8,9] plt.xlabel("epoch") plt.ylabel("loss") plt.plot(range(len(plt_re…

jieba分词并做分析

Github:结巴分词地址 https://github.com/fxsjy/jieba 几种分词方法的简单使用:一 . jieba安装、示例 pip install jieba,jieba分词的语料是基于人民日报。分词示例1 import jieba 2 3 str1 江州市长江大桥 4 word_object jieba.cut(s…

研讨会 | CCF TF 第 17 期:认知计算产业化落地

CCF TF 技术前线只为技术专家CCFTF第17期主题 认知计算产业化落地2019年05月11日上海斯波特酒店五楼(上海市南丹路15号,徐汇区政府对面)人类迈入人工智能时代,技术的发展使得机器可以从大数据中提取信息,串联成知识&a…

短网址系统

文章目录1. 短网址服务整体介绍2. 如何通过哈希算法生成短网址?2.1 如何让短网址更短2.2 如何解决哈希冲突?2.3 如何优化哈希算法生成短网址的性能?3. 如何通过ID生成器生成短网址?3.1 相同的原始网址可能会对应不同的短网址3.2 如…

一个神经元的价值和一个神经病的坚持

作者 | 周博磊来源 | 机器之心一个神经元能够催生多少故事?香港中文大学信息工程系助理教授周博磊近日撰文介绍了他自 2015 年开始至今对神经元的研究经历。最近,他与 David Bau、朱俊彦等人合作的神经元研究论文发表在了 PNAS 杂志上。以下是周博磊的原…

直通BAT必考题系列:深入剖析JVM之G1收集器、及回收流程、与推荐用例

金三银四马上到了,即将进入面试的高峰期。在BAT面试中,JVM基本都是必考的系列。你至少需要掌握JVM内存模型与JVM参数详细配置,JVM的4种垃圾回收算法、垃圾回收机制与总结,以及今天重点谈到的JVM垃圾回收算法的实现:JVM…

多任务学习方法

最近一直在做多任务,但是效果好象没什么提升,因为都是凭自己的想法和感觉在做。于是上网查找了一些这方面的资料,寻求一些理论上的支撑和前人经验上的帮助。 多任务学习: 故名思意,就是多个任务一起学习。为什么要进行…

idea项目目录结构不是树形(横向变纵向)

关闭IDEA 删除项目文件夹下的.idea文件夹 重新用IDEA工具打开项目

曹羽 | 从知识工程到知识图谱全面回顾

本文转载自公众号:集智俱乐部。文本挖掘和图形数据库 | ©ontotext导语知识工程是符号主义人工智能的典型代表,近年来越来越火的知识图谱,就是新一代的知识工程技术。知识工程将如何影响未来人工智能领域的发展,甚至让计算机拥…

4大JVM性能分析工具详解,及内存泄漏分析方案

谈到性能优化分析一般会涉及到: Java代码层面的,典型的循环嵌套等 还会涉及到Java JVM:内存泄漏溢出等 MySQL数据库优化:分库分表、慢查询、长事务的优化等 阿里P8架构师谈:MySQL慢查询优化、索引优化、以及表等优化…

Reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are

情况:就是本来你的 tensor 是有东西的,代码也应该是没问题的,百度无果,debug无果。 原因:突然发现了这一行 failed to allocate 202.56M (212402176 bytes) from device: CUDA_ERROR_OUT_OF_MEMORY: out of memory 然后…

从 0 搭建一个工业级推荐系统

推荐系统从来没像现在这样,影响着我们的生活。当你上网购物时,天猫、京东会为你推荐商品;想了解资讯,头条、知乎会为你准备感兴趣的新闻和知识;想消遣放松,抖音、快手会为你奉上让你欲罢不能的短视频。而驱…

最全中文停用词表整理(1893个)

在网上搜罗了一下&#xff0c;发现这个停用词还是挺好用的&#xff1a; ! " # $ % &( ) *, - -- . .. ... ...... ................... ./ .一 .数 .日 / // 0 1 2 3 4 5 6 7 8 9 : :// :: ; <> >> ?A Lex [ \ ] ^ _exp sub sup | } ~ ~~~~Δ Ψ γ…

论文浅尝 | 虚拟知识图谱:软件系统和应用案例综述

本文转载自公众号&#xff1a;DI数据智能。Virtual Knowledge Graphs: An Overview of Systems and Use Cases作者&#xff1a;Guohui Xiao, Linfang Ding, Benjamin Cogrel & Diego Calvanese供稿&#xff1a;Guohui Xiao编者按&#xff1a;Data Intelligence 发表意大利博…