一文讲透Python机器学习决策树算法的基本概念与原理

news2024/9/24 13:20:56

1.决策树算法的基本特点与优势

决策树算法是一种有监督、非参数、简单、高效的机器学习算法。相对于非监督式学习方法,决策树算法由于充分利用了响应变量的信息,因此能够很好地克服噪声问题,在分类及预测方面效果更佳。决策树的决策边界为矩形,所以对于真实决策也为矩形的样本数据集有着很好的预测效果。此外,决策树算法以树形展示分类结果,在结果的展示方面比较直观,所以在实务中应用较为广泛。

2.决策树示例及解读

决策树算法借助树的分支结构构建模型。如果是用于分类问题,则决策树为分类树;如果是用于回归问题,则决策树为回归树。一个典型的决策树例子如图所示。

在图中,最上面的一个点是根节点,最下面的各个点是叶节点,其他的点都是内节点(本例中展示的决策树内节点只有一层,但实务中可能有很多层都属于内节点)。

本例中根节点为0号(node #0),样本全集中未违约客户和违约客户的占比分别为0.739、0.261。

在样本全集中,如果客户的工作年限workyears<=7.35,就会被分到1号节点,1号节点未违约客户和违约客户的占比分别为0.493、0.507;如果客户的工作年限workyears>7.35,就会被分到4号节点,4号节点未违约客户和违约客户的占比分别为0.941、0.059。然后在1号节点中,如果客户的债务率debtratio <= 12.653,就会被分到2号节点,2号节点未违约客户和违约客户的占比分别为0.718、0.282;如果信用卡客户的债务率debtratio >12.653,就会被分到3号节点,3号节点未违约客户和违约客户的占比分别为0.24、0.76,需要引起高度重视。

如果是分类树,叶节点将类别占比最大的类别作为该叶节点的预测值;如果是回归树,叶节点将节点内所有样本响应变量实际值的平均值作为该叶节点的预测值。

3.决策树执行的是一种自上而下的贪心算法

从原理的角度来看,决策树本质上就是依次选取最为合适的特征向量,按照特征向量的具体取值不断对特征空间进行矩形分割,因为每一次切割都是直线,所以其决策边界为矩形。在分割空间时,决策树执行的是一种自上而下的贪心算法,即每次仅选择一个变量按照变量临界值进行分割,该变量及其临界值都是当前步骤下,能够实现局部最优的分割变量和分割临界值,并未从全盘考虑整体最优

4.决策树算法不需要对特征变量进行标准化处理

一般来说,大部分机器学习都需要将特征变量标准化, 以便让特征之间的比较可以在同一个量纲上进行。但是对于决策树算法而言,从数据构建过程来看, 不纯度函数的计算和比较都是单特征的,所以决策树算法不需要对特征变量进行标准化处理

综上所述,决策树的分类规则非常容易理解,准确率也比较高,尤其是针对实际决策边界为矩形的情形,而且不需要了解背景知识就可以进行分类,是一个非常有效的算法。

5.针对Python数据分析或机器学习推荐两本入门级的图书

Python作为一门简单、易学、易读、易维护、用途广泛、速度快、免费、开源的主流编程语言,广泛应用于Web开发、大数据处理、人工智能、云计算、爬虫、游戏开发、自动化运维开发等各个领域,是众多高等院校的必修基础课程,也是堪与Office办公软件比肩的职场人士必备技能。Python可以很好地完成数据分析以及机器学习中的数据清洗、特征工程、算法执行、数据可视化等任务,在实务中也得到了非常广泛的应用。因此将Python作为实现工具。

针对Python​​​​​​​数据分析或机器学习推荐两本入门级的图书:《Python机器学习原理与算法实现》(杨维忠 张甜 著 2023年2月新书 清华大学出版社)《Python数据科学应用从入门到精通》(张甜 杨维忠 著 2023年11月新书 清华大学出版社)。这两本书的特色是在数据分析、机器学习各种算法的介绍方面通俗易懂,较少涉及数学推导,对数学基础要求相对不高,在python代码方面讲的很细致,看了以后根据自身需要选取算法、优化代码、科学调参。都有配套免费提供的源代码、数据文件和视频讲解,也有PPT、思维导图、习题等。

(1)《Python机器学习原理与算法实现》(杨维忠 张甜 著 2023年2月新书 清华大学出版社)

为什么说这两本书值得?首先说《Python机器学习原理与算法实现》(杨维忠 张甜 著 2023年2月新书 清华大学出版社),内容非常详实,包含了Python和机器学习,相当于一次获得了两本书。在讲解各类机器学习算法时,逐一详解用到的各种Python代码,针对每行代码均有恰当注释(这一点基本上是大多数书目做不到的)。恒丰银行总行副行长郑现中,山东大学经济学院教学实验中心主任 副教授 韩振,德勤华永会计师事务所 华文伟 合伙人,首创证券深圳分公司机构业务部 樊磊 总经理 中国准精算师,山东省农村信用社联合社数据管理项目组 郝路安 总监等一众大牛联袂推荐。这本书在出版之前曾开发成9次系列课程,在恒丰银行全行范围类开展培训,490人跟随杨维忠老师上课学习(课程限报490人),培训完成后课程在知鸟平台上回放超过3万人次。很多银行员工通过这些学习一下子就学会了Python,并且用于工作中开展数据分析、机器学习、数据可视化等,这本书也被多家商业银行选做数字化人才培训教材,成为银行员工的一本网红书。

(2)《Python数据科学应用从入门到精通》(张甜 杨维忠 著 2023年11月新书 清华大学出版社)

《Python数据科学应用从入门到精通》一书,旨在教会读者实现全流程的数据分析,并且相对《Python机器学习原理与算法实现》一书增加了很多概念性、科普性的内容,进一步降低了学习难度。国务院发展研究中心创新发展研究部第二研究室主任杨超 ,山东大学经济学院金融系党支部书记、副主任、副教授、硕士生导师张博,山东管理学院信息工程学院院长 袁锋 教授、硕士生导师,山东大学经济学院刘一鸣副研究员、硕士生导师,得厚投资合伙人张伟民等一众大牛联袂推荐。书中全是干活,买这一本书相当于一下子得到了5本书(Python基础、数据清洗、特征工程、数据可视化、数据挖掘与建模),而且入门超级简单,不需要编程基础,也不需要过多数学推导,非常适用于零基础学生。全书内容共分13章。其中第1章为数据科学应用概述,第2章讲解Python的入门基础知识,第3章讲解数据清洗。第4~6章介绍特征工程,包括特征选择、特征处理、特征提取。第7章介绍数据可视化。第8~13章介绍6种数据挖掘与建模方法,分别为线性回归、Logistic回归、决策树、随机森林、神经网络、RFM分析。从数据科学应用和Python的入门,再到数据清洗与特征工程,最终完成数据挖掘与建模或数据可视化,从而可以为读者提供“从拿到数据开始,一直到构建形成最终模型或可视化报告成果”的一站式、全流程指导。

两本书随书赠送的学习资料也很多,包括全部的源代码、PPT、思维导图,还有10小时以上的讲解视频,每一章后面还有练习题及参考答案,还有学习群,相对于只看网络上的视频,一方面更加系统、高效,另一方面照着书一步步操作学起来也事半功倍。全网热销中,当当、京东等平台搜索“Python机器学习 杨维忠”“Python数据科学 杨维忠”即可。

《Python机器学习原理与算法实现》(杨维忠、张甜著,2023年2月,清华大学出版社),适用于学习Python/机器学习

《Python数据科学应用从入门到精通》(张甜 杨维忠 著 2023年11月新书 清华大学出版社)适用于学习数据分析、数据科学、数据可视化等。

创作不易,恳请多多点赞,感谢您的支持!也期待大家多多关注我,让我共同学习数据分析知识。

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

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

相关文章

win10打开或关闭系统图标界面网络显示灰色

1、右击任务栏&#xff0c;选择任务管理器&#xff0c;或同时按下键盘上的“CtrlShiftEsc”组合键打开任务管理器&#xff1b; 2、在任务管理器【进程】选卡下找到【资源管理器】&#xff0c;单击右键&#xff0c;选择【重新启动】即可。 等待桌面和任务栏全部消失&#xff0c…

某60区块链安全之JOP实战一学习记录

区块链安全 文章目录 区块链安全Jump Oriented Programming实战一实验目的实验环境实验工具实验原理实验内容Jump Oriented Programming实战一 实验步骤分析合约源代码漏洞Jump Oriented Programming实战一 实验目的 学会使用python3的web3模块 学会分析以太坊智能合约中中Ju…

《数据库系统概论》学习笔记——王珊 萨师煊

第一章 绪论 一、数据库系统概述 1.数据库的4个基本概念 &#xff08;1&#xff09;数据 描述事物的符号记录称为数据 &#xff08;2&#xff09;数据库 存放数据的仓库 &#xff08;3&#xff09;数据库管理系统 主要功能&#xff1a; &#xff08;1&#xff09;数据定…

RabbitMQ的消息发送和接收机制

所有 MQ 产品从模型抽象上来说都是一样的过程&#xff1a; 消费者&#xff08;consumer&#xff09;订阅某个队列。生产者&#xff08;producer&#xff09;创建消息&#xff0c;然后发布到队列&#xff08;queue&#xff09;中&#xff0c;最后将消息发送到监听的消费者。 上…

【上海大学数字逻辑实验报告】四、组合电路(三)

一、 实验目的 掌握多路选择器74LS151的原理。掌握译码器74LS138的原理。学会在Quartus II上使用多路选择74LS151设计电路。学会在Quartus II上使用译码器74LS138设计电路。 二、 实验原理 多路选择器又称数据选择器或多路开关&#xff0c;它是一种多路输入单路输出的组合逻…

开启三层交换机DHCP服务

二层交换机上不需要配置任何东西&#xff0c;只需要在pc机上开启dhcp服务&#xff0c;配置好LSW1后就可以自动获取到IP地址。 sys Enter system view, return user view with CtrlZ. [Huawei]sys sw1 [sw1]dhcp enable Info: The operation may take a few seconds. Please wai…

腾讯云轻量应用服务器怎么安装BT宝塔面板?

腾讯云轻量应用服务器宝塔面板怎么用&#xff1f;轻量应用服务器如何安装宝塔面板&#xff1f;在镜像中选择宝塔Linux面板腾讯云专享版&#xff0c;在轻量服务器防火墙中开启8888端口号&#xff0c;然后远程连接到轻量服务器执行宝塔面板账号密码查询命令&#xff0c;最后登录和…

关于前端学习的思考-vertical-align的用法

先摆结论&#xff1a;vertical-align这里的top线&#xff0c;bottom线&#xff0c;middle线&#xff0c;baseline线是由最大宽度和最大高度的行内元素或行内块元素决定的。 按照惯例&#xff0c;先摆三个行内元素。 1、改变第一个盒子&#xff0c;vertical-align&#xff1a;to…

Java数据结构之《快速排序》(难度系数85)

一、前言&#xff1a; 这是怀化学院的&#xff1a;Java数据结构中的一道难度中等(偏难理解)的一道编程题(此方法为博主自己研究&#xff0c;问题基本解决&#xff0c;若有bug欢迎下方评论提出意见&#xff0c;我会第一时间改进代码&#xff0c;谢谢&#xff01;) 后面其他编程题…

网络层之无分类编址CIDR(内涵计算例题)

学习的最大理由是想摆脱平庸&#xff0c;早一天就多一份人生的精彩&#xff1b;迟一天就多一天平庸的困扰。各位小伙伴&#xff0c;如果您&#xff1a; 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持&#xff0c;想组团高效学习… 想写博客但无从下手&#xff0c;急需…

leetcode:对称二叉树

题目描述 题目链接&#xff1a;101. 对称二叉树 - 力扣&#xff08;LeetCode&#xff09; 题目分析 题目中说至少存在一个节点&#xff0c;所以我们只需要对比左右子树 写一个子函数对比左右子树&#xff1a;用递归的思路&#xff0c;左子树的左子树和右子树的右子树对比&…

苹果电脑录屏神器,让你的录制更加轻松

“苹果电脑可以录屏吗&#xff1f;老师布置了一份作业&#xff0c;需要用到视频作为材料&#xff0c;现在我找到素材了&#xff0c;但是不知道怎么录制下来&#xff0c;非常头疼&#xff0c;大家知道苹果电脑怎么使用录屏功能吗&#xff1f;” 苹果电脑一直以其出色的性能和简…

6.17验证二叉树(LC98-M)

算法&#xff1a; 中序遍历下&#xff0c;输出的二叉搜索树节点的数值是有序序列。 有了这个特性&#xff0c;验证二叉搜索树&#xff0c;就相当于变成了判断一个序列是不是递增的了。 具体地&#xff1a;中序遍历时&#xff0c;判断当前节点是否大于中序遍历的前一个节点&a…

IntelliJ IDEA 智能(AI)编码工具插件

文章目录 通义灵码-阿里CodeGeeX-清华大学智谱AIBitoAmazon CodeWhisperer-亚马逊GitHub Copilot - 买不起CodeiumAIXcoder 仅仅自动生成单元测试功能 TestMe插件&#xff08;免费&#xff09;仅仅是模板填充&#xff0c;不智能。 Squaretest插件&#xff08;收费&#xff09;…

奇客数据恢复评论:优点、缺点和个人的结论

小型、中型和大型公司以数字格式存储大量信息。数据范围包括患者或客户信息、工资数据、联系人列表、电子邮件通信、有关个人工作和项目的各种数据以及电子表格。丢失这些数据和文件对于任何公司来说都是灾难性的。恢复这些数据对于业务的正常功能来说非常重要。 由于存在许多…

任务管理器快捷键分享!这些知识很有用!

“我刚学习使用电脑没多久&#xff0c;想问问大家任务管理器这个功能有什么用处呀&#xff1f;在使用任务管理器时有什么快捷键能快速进入吗&#xff1f;感谢解答&#xff01;” 在日常使用电脑的过程中&#xff0c;我们经常需要打开任务管理器来进行一些操作。而掌握任务管理器…

uniapp 之 短信验证码登录

一、需求 输入手机号码&#xff0c;可以获取验证码。 二、实现效果 点击前&#xff1a; 点击后&#xff1a; 三、代码实现 <template><view class"login"><view class"infobox"><view class"item"><input type…

CCleaner2024电脑中文最新免费版5.66

CCleaner是一款小型&#xff0c;快速&#xff0c;专业的系统清理和隐私保护工具。没有最低内存或硬盘驱动器要求。可使电脑启动速度最高提速53%&#xff0c;不包含任何广告软件。不仅可以清除系统中的垃圾文件和使用者的历史记录和Cookie&#xff0c;更能删除保留在计算机的Coo…

深入剖析Java Web开发中的过滤器、拦截器和AOP

文章目录 1. 过滤器&#xff08;Filter&#xff09;1.1 过滤器的概念1.2 过滤器的应用场景1.3 过滤器的示例代码 2. 拦截器&#xff08;Interceptor&#xff09;2.1 拦截器的概念2.2 拦截器的应用场景2.3 拦截器的示例代码 3. AOP&#xff08;面向切面编程&#xff09;3.1 AOP的…

element UI改写时间线组件为左右分布

2023.12.4今天我学习了如何使用element的时间线组件&#xff0c;效果如&#xff1a; 代码如下&#xff1a;&#xff08;关键代码 v-if"item.send_type"&#xff09;判断左右分布情况。因为如果没有这个判断的话&#xff0c;其实会两边都有显示。可以用一个判断表示0显…