Scikit-Learn回归树

Scikit-Learn回归树

    • 1、决策树
      • 1.1、什么是决策树
      • 1.2、决策树学习的步骤
      • 1.3、决策树算法



1、决策树


决策树(DTs)是一种用于回归和分类的有监督学习方法。通常,决策树用于分类问题;当决策树用于回归问题时,称为回归树。回归树在机器学习知识结构中的位置如下:


1.1、什么是决策树


决策树,顾名思义,是一种树形结构。决策树使用层层推理来实现最终的分类。决策树由下面几种元素构成:

  • 根节点:包含样本的全集
  • 内部节点:对应一个特征属性的测试
  • 叶节点:对应一种类别(决策的结果)

在这里插入图片描述
这是一种基于If-Then规则的有监督学习算法,决策树的这些规则通过训练得到,而不是人工制定的

预测时,在树的内部节点处用某一属性值进行判断,根据判断结果决定进入哪个分支节点,直到到达叶节点处,得到分类结果

例如,银行要用机器学习算法来确定是否给客户发放贷款,为此需要考察客户的年收入、是否有房产这两个指标:

在这里插入图片描述
首先判断客户的年收入指标。如果大于20万,可以贷款;否则继续判断。然后判断客户是否有房产。如果有房产,可以贷款;否则不能贷款

1.2、决策树学习的步骤


决策树学习通常是一个选择最优特征,并根据该特征对训练数据进行分割,使得各个子数据集有一个最好的分类的过程。这一过程对应着对特征空间的划分,也对应着决策树的构建

决策树学习通常有三个步骤:特征选择;决策树生成;决策树剪枝

  • 特征选择

特征选择决定了使用哪些特征来做判断。在训练数据集中,每个样本的属性可能有很多个,特征选择的作用就是筛选出跟分类结果相关性较高的特征,也就是分类能力较强的特征

不同的决策树算法有着不同的特征选择的准则

  • 决策树生成

选择好特征后,就从根节点触发,对节点计算所有特征的信息增益(以ID3算法为例),选择信息增益最大的特征作为节点特征,根据该特征的不同取值建立子节点;对每个子节点使用相同的方式生成新的子节点,直到信息增益很小或者没有特征可以选择为止

  • 决策树剪枝

决策树生成只考虑了对训练数据更好的拟合,可以通过对决策树剪枝,减小模型的复杂度,达到避免过拟合的效果

剪枝的主要目的是对抗过拟合,通过主动去掉部分分支来降低过拟合的风险

1.3、决策树算法


决策树算法的核心在于生成一棵决策树过程中,如何划分各个特征到树的不同分支上去

构建决策树常用的算法有:ID3、C4.5、C5.0和CART算法。其中ID3、C4.5和C5.0只能用于分类问题;CART既可以用于分类,也可以用于回归,因此更被广泛应用

  • ID3(迭代分离3)

ID3算法是由Ross Quinlan于1986年开发的。该算法建立了一个多路树,为每个节点(即贪婪地)寻找分类特征,从而为分类目标提供最大的信息增益。树生长到它们的最大尺寸,然后,通常采取一个剪枝步骤,以提高树的对位置数据的泛化能力

ID3算法的核心是在决策树各个节点上使用信息增益作为选择特征的准则,信息增益大的优先选择,使用递归方法构建决策树。信息增益体现出特征与类的关联程度,即特征对类不确定性的影响程度

  • C4.5

C4.5是ID3的继承者,并且通过动态定义将连续属性值分割成一组离散间隔的离散属性(基于数字变量),从而消除了特征必须是分类的限制。C4.5将经过训练的树(即ID3算法的输出)转换成一组If-Then规则的集合。然后对每条规则的这些准确性进行评估,以确定应用它们的顺序。如果规则的准确性没有提高的话,则需要决策树的树枝来解决

C4.5算法是对ID3算法的改进,C4.5使用信息增益比来选择特征,以减少信息增益容易选择特征值多的特征的问题

  • C5.0

C5.0是Quinlan在专有许可下发布的最新版本。与C4.5相比,它使用更少的内存和构建更小的规则集,同时更精确

  • CART(Classification And Regression Tree,分类与回归树)

CART与C4.5非常相似,但它的不同之处在于它支持数值目标变量(回归),不计算规则集。CART使用特征和阈值构造二叉树,在每个节点上获得最大的信息增益

CART算法是根据基尼系数(Gini)来划分特征的,每次选择基尼系数最小的特征作为最优切分点

Scikit-Learn使用CART算法的优化版本。CART的特点是:假设决策树是二叉树,内部结点特征的取值为是和否,右分支是取值为是的分支,左分支是取值为否的分支。这样的决策树等价于递归地二分每个特征,将输入特征空间划分为有限个单元,并在这些单元上确定预测的概率分布,也就是在输入给定的条件下输出的条件概率分布


未完待续…



参考文章:
https://easyai.tech/ai-definition/decision-tree/
https://blog.csdn.net/ShowMeAI/article/details/123401318
https://www.showmeai.tech/article-detail/190
https://blog.csdn.net/m0_64336780/article/details/127133338
https://wszyx.blog.csdn.net/article/details/113547952
https://blog.csdn.net/qq_39709813/article/details/106694992


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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Midjourney之绘画背景的选择

hello 小伙伴们,我是你们的老朋友——树下,今天分享Midjourney提示词中绘画背景的选择,话不多说,直接开始~ 对于背景的选择,Midjourney中主要体现在年代和所处的环境对绘画产生不同的影响 科技的发展,我们…

matlab学习006-使用matlab绘出系统的冲激响应和阶跃响应波形并求其冲激响应的数值解

目录 题目 1,绘出系统的冲激响应和阶跃响应波形 1)基础 2)效果 3)代码 2,求出t0.5s,1s,1.5s,2s时系统冲激响应的数值解。 1)基础 2)效果 ​☀ 3)代码 题目 已知描述某连续系…

【Python】Anaconda 使用笔记

文章目录 一、创建环境1.1 在任意磁盘中创建环境1.2 添加环境路径envs_dirs 二、安装和使用Python环境三、删除已有的Python环境 前言   笔者使用Python的目的主要是为了学习神经网络等深度学习算法。但是在学习之初配置环境的时候发现之前的环境配置一团乱麻,不仅…

Mybatis进阶(动态SQL)

文章目录 1.动态SQL1.基本介绍1.为什么需要动态SQL2.基本说明3.动态SQL常用标签 2.环境搭建1.新建子模块2.删除不必要的两个文件夹3.创建基本结构4.父模块的pom.xml5.jdbc.properties6.mybatis-config.xml7.MyBatisUtils.java8.MonsterMapper.java9.MonsterMapper.xml10.测试Mo…

第七篇:专家级指南:Python异常处理的艺术与策略

专家级指南:Python异常处理的艺术与策略 1 引言 在编程的世界中,异常处理是一门必修的艺术。它不仅涉及到程序的错误处理,更广泛地影响着软件的稳定性、健壮性和用户体验。本篇文章将深入探讨Python中的异常处理,展示如何通过精心…

Linux:服务器间同步文件的脚本(实用)

一、功能描述 比如有三台服务器,hadoop102、hadoop103、hadoop104,且都有atguigu账号 循环复制文件到所有节点的相同目录下,且脚本可以在任何路径下使用 二、脚本实现 1、查看环境变量 echo $PATH2、进入/home/atguigu/bin目录 在该目录下…

三. Django项目之电商购物商城 -- 校验用户名 , 数据入库

Django项目之电商购物商城 – 校验用户名 , 数据入库 需要开发文档和前端资料的可私聊 一. 路由匹配获得用户名 在注册时 , 用户输入用户名 , 通过ajax请求发送到服务器 , 在路由中设置对应url , 响应视图 , 将用户输入的用户名传入视图 , 与数据库进行校验检查用户名是否重…

信息技术内涵及意义

一、信息技术及其演进趋势 (一)信息技术概况概念 信息技术(Information Technology,IT)指“应用在信息加工和处理中的科学、技术与工程的训练方法与管理技巧;上述方法和技巧的应用;计算机及其…

linux高性能服务器--Ngix内存池简单实现

文章目录 内存模型:流程图内存对齐code 内存模型: 流程图 内存对齐 对齐计算 要分配一个以指定大小对齐的内存,可以使用如下公式: 假设要分配大小为n,对齐方式为x,那么 size(n(x-1)) & (~(x-1))。 举个…

【大模型系列】大模型的上下文长度解释与拓展

文章目录 1 什么是大模型的上下文长度?2 拓展大模型上下文长度的方式参考资料 1 什么是大模型的上下文长度? 大模型的上下文长度(Context Length)是指在自然语言处理(NLP)的大型语言模型(Large…

自动的异地组网工具?

越来越多的企业和个人对远程访问和异地组网需求日益增加。为了满足这一需求,各种技术和服务也不断涌现。其中一项备受关注的技术就是自动的异地组网。本文将介绍这一技术的优势和特点。 【天联】组网的优势 天联组网技术以其卓越的性能和稳定性备受用户称赞。它的优…

数据结构:实验七:数据查找

一、 实验目的 (1)领会各种查找算法的过程和算法设计。 (2)掌握查找算法解决实际问题。 二、 实验要求 (1)编写一个程序exp8-1.cpp, 按提示输入10个任意的整形数据(无序)&…

数字旅游引领未来智慧之旅:科技应用深度重塑旅游生态,智慧服务全面升级打造极致高品质旅游体验

随着信息技术的飞速发展,数字旅游作为旅游业与科技融合的新兴业态,正以其独特的魅力和优势,引领着旅游业迈向智慧之旅的新时代。数字旅游不仅通过科技应用重塑了旅游生态,更通过智慧服务为游客带来了高品质的旅游体验。本文将深入…

从键入网址到网页显示,期间发生了什么?

从键入网址到网页显示,期间发生了什么? 孤单小弟【HTTP】真实地址查询【DNS】指南帮手【协议栈】可靠传输【TCP】远程定位【IP】两点传输【MAC】出口【网卡】送别者【交换机】出境大门【路由器】互相扒皮【服务器与客户端】相关问答 不少小伙伴在面试过程…

浅谈Agent AI智能体的未来

Agent AI智能体的未来非常广阔和潜力巨大。随着技术的发展和应用场景的不断拓展,我们可以期待以下几个方面的发展: 更加智能化:Agent AI智能体将会变得越来越智能,具备更强大的学习、推理和决策能力。它们可以通过大数据和机器学习…

java序列化和反序列化基础学习

一、前言 前文分析了java的反序列化的DNSURL利用链,但是对于java反序列化的一些过程不是很了解,这篇主要记录下学习java反序列基础知识 二、原理 概念 1、什么是序列化和反序列化 (1)Java序列化是指把Java对象转换为字节序列…

【C++】一篇文章带你深入了解stack、queue 和 priority_queue

目录 一、stack的介绍和使用1.1 stack的介绍1.2 stack的使用1.2.1.1 [stack对象的构造](https://legacy.cplusplus.com/reference/stack/stack/stack/)1.2.1.2 stack对象的容量操作1.2.1.2.1 [empty()函数](https://legacy.cplusplus.com/reference/stack/stack/empty/)1.2.1.2…

周三多《管理学原理》第3版/考研真题/章节练习题

普通高等教育“十一五”国家级规划教材《管理学原理》(第3版,周三多、陈传明、龙静编著,南京大学出版社)是我国高校广泛采用的管理学权威教材之一,也被众多高校(包括科研机构)指定为考研考博专业…

UDP/TCP

udp/tcp特征 udp: 无连接不可靠传输面向数据包全双工 tcp: 有连接可靠传输面向字节流全双工 解释: 有连接/无连接:发送消息时,对方是否必须要在线 比如我们聊天程序,我们给对方发送消息,是不管现…

C++笔试练习笔记 【2】: 数字统计 BC153 两个数组的交集 NC313 点击消除 AB5

文章目录 数字统计分析题目代码部分 两个数组的交集题目分析代码部分 点击消除题目解析代码部分 数字统计 分析题目 这个题涉及到两个知识点,就是枚举和数字的拆分 那么我的思路是进行遍历,拆分数字判断二的个数,枚举进行计数 那么数字的拆分…