机器学习算法/模型——决策树(2)深入理解

机器学习算法 - 决策树 前言 1、首先,在了解树模型之前,自然想到树模型和线性模型有什么区别呢? 其中最重要的是,树形模型是一个一个特征进行处理,线性模型是所有特征给予权重相加得到一个新的值。决策树与逻辑回归的分类区别也在于此,逻辑回归是将所有特征变换为概率后,通过大于某一概率阈值的划分为一类,小于某一概率阈值的为另一类;而决策树是对每一个特征做一个划分。另外逻辑回归只能找到线性分割(输入特征x与logit之间是线性的,除非对x进行多维映射),而决策树可以找到非线性分割。 而树形模型更加接近人的思维方式,可以产生可视化的.. 阅读详情

概念

概述

决策树是最简单的机器学习算法,它易于实现,可解释性强,完全符合人类的直观思维,有着广泛的应用。决策树到底是什么?简单地讲,决策树是一棵二叉或多叉树(如果你对树的概念都不清楚,请先去学习数据结构课程),它对数据的属性进行判断,得到分类或回归结果。预测时,在树的内部节点处用某一属性值(特征向量的某一分量)进行判断,根据判断结果决定进入哪个分支节点,直到到达叶子节点处,得到分类或回归结果。这是一种基于if-then-else规则的有监督学习算法,决策树的这些规则通过训练得到,而不是人工制定的。

理论

决策树出现于1980年代。决策树的实现有ID3,C4.5,CART(Classification and Regression Tree,分类与回归树)等方法,它们的区别在于树的结构与构造算法。

决策树是一种判别模型,天然支持多类分类问题。如果用于分类问题,决策树称为分类树;如果用于回归问题,则称为回归树。

分类树对应的映射函数是多维空间的分段线性划分,即用平行于各个坐标轴的超平面对空间进行切分;回归树的映射函数是分段常数函数。

决策树是分段线性函数但不是线性函数,它具有非线性建模的能力。只要划分的足够细,分段常数函数可以逼近闭区间上任意函数到任意指定精度,因此决策树在理论上可以对任意复杂度的数据进行分类或者回归。对于分类问题,如果决策树深度够大,它可以将训练样本集的所有样本正确分类。但如果特征向量的维数过高,可能会遇到维数灾难导致准确率下降。

训练算法

现在要解决的关键问题是怎样用训练样本建立决策树。如果对于分类问题,训练得到的决策树至少要让训练样本尽快能的被分正确。

需要考虑的问题点:

  1. 如何选择特征属性在决策节点的位置(先后顺序)?
  2. 选待定一个特征属性后,具体的分类规则是什么?即如何设置阈值条件(数值变量)或者取值集合的子集(类别变量)?
  3. 何时停止分,把节点设置为叶子节点?
    对于分类问题,当节点的样本都属于同一类型时停止,但是这样可能会导致树的节点过多、深度过大,产生过拟合问题。另一种方法是当节点中的样本数小于一个阀值时停止分裂。

下面是具体的解决办法:

递归分裂过程

训练算法是一个递归的过程。首先创建根节点,然后建立左子树和右子树。如果练样本集为D,训练算法的整体流程为:

1.用样本集D建立根节点,找到一个判定规则,将样本集分裂成D1和D2两部分,同时为根节点设置判定规则。

2.用样本集D1递归建立左子树。

3.用样本集D2递归建立右子树。

4.如果不能再进行分裂,则把节点标记为叶子节点,同时为它赋值。

在确定这个递归流程之后,接下来要解决的核心问题是怎样对训练样本集进行分裂。

寻找最佳分裂

对于分类问题,要保证分裂之后左右子树的样本尽可能的纯,即它们的样本尽可能属于不相交的某一类或者几类。为此需要定义不纯度的指标:当样本都属于某一类时不纯度为0;当样本均匀的属于所有类时不纯度最大。

满足这个条件的有熵不纯度,Gini不纯度,以及误分类不纯度,下面分别进行介绍。

不纯度指标用样本集中每类样本出现的概率值构造。因此首先要计算每个类出现的概率,这通过训练样本集中每类样本数除以样本总数得到:
在这里插入图片描述

  • 样本集的熵不纯度定义
    在这里插入图片描述

  • 样本集的Gini不纯度定义
    在这里插入图片描述

  • 样本集的误分类不纯度定义

    在这里插入图片描述

叶子节点值的设定

如果不能继续分裂,则将该节点设置为叶子节点。
如果是分类树,则叶子节点的值设置成本节点的训练样本集中出现概率最大的那个类;
如果是回归树,则设置为本节点训练样本标签值的均值。

属性缺失问题

剪枝算法

整个剪枝算法分为两步完成:

第一步先训练出T0,然后用上面的方法逐步剪掉树的所有非叶子节点,直到只剩下根节点得到剪枝后的树序列。这一步的误差计算采用的是训练样本集。

第二步根据真实误差值从上面的树序列中挑选出一棵树作为剪枝后的结果。这可以通过交叉验证实现,用交叉验证的测试集对上一步得到的树序列的每一棵树进行测试,得到这些树的错误率,然后根据错误率选择最佳的树作为剪枝后的结果。

需要继续参考:2. 集成学习综述-从决策树到XGBoost,完成集成学习

参考:

  1. 理解决策树
  2. 集成学习综述-从决策树到XGBoost
1.6、机器学习-决策树模型(金融实战) 决策树是一种基于特征分割的监督学习算法,通过递归分割数据空间构建预测模型。文章首先介绍了决策树的基本原理,包括信息熵的概念和计算方式,以及如何利用信息增益来选择最优划分特征。接着详细阐述了三种主要决策树算法(ID3、C4.5和CART)的特点和实现方法,其中CART算法支持分类和回归任务。最后通过银行信用风险评估案例,展示了数据预处理、模型构建、评估和调优的完整流程,包括特征重要性分析和决策树可视化。文章强调决策树的直观性和可解释性,同时指出需要通过参数调优和剪枝来防止过拟合。 阅读详情

相关推荐

决策树:机器学习中的分类与回归利器

决策树借树状结构决策,用于分类与回归。经选特征、分割等步骤构建,有优缺点,可用Python的scikit - learn库实现及可视化。

Smell_of_earth的博客 1425

机器学习实战-树回归

介绍 CART(classification and regression trees 分类回归树):该算法既可以用于分类,还可以用于回归。利用python来构建并显示回归树。 主要介绍:CART构建回归树,树剪枝技术(防止树的过拟合)。 模型树算法:与回归树算法不同,该算法需要在每个叶节点上都构建出一个线性模型。 构建过程中调参:使用python的tkinter建立图形交互界面 1.复...

txb_doyourbest的博客 504

Python 机器学习 决策树 特征选择

Python机器学习中,特征选择是在构建机器学习模型时优化模型性能的重要步骤。它通过从原始数据集中选择最相关的特征来减少模型的复杂性,提高训练速度,降低过拟合的风险,并可能提高模型的预测性能。特征选择不仅可以提高模型的性能,还可以提供对数据和所解决问题的深入理解,特别是在特征工程阶段决定哪些特征是重要的。

weixin_42098295的博客 1822

IJCAI2019|清华大学提出并开源新型梯度提升决策树(梯度提升分段线性回归树)

Gradient Boosting with Piece-Wise Linear Regression TreesYu Shi , Jian Li and Zhize L...

hestendelin的专栏 842

人工智能AI 与 机器学习ML 的关键区别

人工智能(AI)是指计算机系统能够执行通常需要人类智能才能完成的任务。包括理解自然语言、识别图像、解决复杂问题和做出决策。AI的目标是创建能够模仿或超越人类智能的系统。弱人工智能(弱AI):也称为窄AI,专注于特定任务。例如,语音助手(如Siri和Alexa)和推荐系统(如Netflix和Amazon的推荐算法)。强人工智能(强AI):也称为通用AI,具有执行任何人类智能任务的能力。目前,强AI仍处于理论阶段,尚未实现。机器学习(ML)是人工智能的一个子领域。

王教主的博客 5943

机器学习算法(3)之决策树算法

前言:首先,在了解树模型之前,自然想到树模型和线性模型有什么区别呢?其中最重要的是,树形模型是一个一个特征进行处理,之前线性模型是所有特征给予权重相加得到一个新的值。决策树与逻辑回归的分类区别也在于此,逻辑回归是将所有特征变换为概率后,通过大于某一概率阈值的划分为一类,小于某一概率阈值的为另一类;而决策树是对每一个特征做一个划分。另外逻辑回归只能找到线性分割(输入特征x与logit之间是线性的,除...

不曾走远的博客 12万+

PCB决策引擎:多维决策表转决策树

准备设计一个PCB使用的决策引擎,需要用到决策表,而单维决策表不能满足业务要求, 这里主要是为了实现:用户编辑的是决策表,实际底层存储的是树结构,树的的各个节点挂上业务决策逻辑. 这里将多维决策表转决策树构思整理如下: 一.决策表(多维表头结构UI编辑界面) 用户可编辑的规则界面,规则决策表交由用户配制,可实现任意多表头结构的决策表。 二.决策树(TreeNode 简易...

weixin_30407613的博客 587

解析数据结构与算法中的决策树模型

决策树是机器学习中最基础且广泛应用的算法之一,它模拟人类决策过程,通过树形结构对数据进行分类或回归预测。系统性地介绍决策树的核心原理和数学基础深入分析不同决策树算法的实现细节提供可实践的Python代码实现探讨决策树在实际应用中的表现和优化方法首先介绍决策树的基本概念和核心术语然后深入分析决策树的算法原理和数学基础接着通过Python代码实现完整的决策树分类器最后探讨实际应用和未来发展方向决策树(Decision Tree)

AI天才研究院 1007

第四个模型:决策树模型

=======================================================================                Machine Learning notebook Python机器学习基础教程(introduction to Machine Learning with Python) https://github.com/amuelle...

枪枪枪的博客 6491

决策树模型的优点和缺点:如何评估模型的准确性和效率

作者:禅与计算机程序设计艺术 决策树模型的优点和缺点:如何评估模型的准确性和效率 决策树模型作为机器学习领域中的一种常用模型,具有广泛的应用价值。在农业、医疗、金融等各个领域都发挥着重要的作用。本

AI天才研究院 5803

深入理解与应用:决策树模型案例分析

决策树是一种流行的机器学习模型,它通过一系列的分支决策规则来预测目标变量的值。它在分类和回归任务中都有广泛的应用,并且以直观和易于解释著称。在本章中,我们将简要介绍决策树的基本概念,并讨论其在实际问题中的应用实例,为读者提供对决策树模型全面的初步认识。信息熵的概念最早来源于热力学,它衡量了一个系统的无序度。在信息论中,熵被用来量化信息的不确定性。信息熵越高,表示系统中的信息不确定性越大。在决策树模型中,熵是衡量数据集纯度的重要指标,它可以帮助我们识别在分割数据时最有信息量的特征。

weixin_31776191的博客 1181

深入理解机器学习——基于决策树(Decision Tree)的模型:分类树和回归树

决策树(Decision Tree)是一种基本的分类与回归方法。本文会讨论决策树中的分类树与回归树,后续文章会继续讨论决策树的Boosting和Bagging的相关方法。决策树由结点和有向边组成。结点有两种类型:内部结点和叶结点,其中内部结点表示一个特征或属性,叶结点表示一个类。 分类树 分类树是一种描述对实例进行分类的树形结构。 用决策树分类,从根结点开始,对实例的某一特征进行测试,根据测...

冯·诺依曼 31万+

深入理解k近邻算法与决策树模型

本文详细探讨了k近邻算法的实现方式、距离度量方式、以及如何选择合适的k值。同时,介绍了决策树模型的基本概念、特征选择方法以及如何通过决策树进行分类。文章通过实例代码,展示了如何使用NumPy和sklearn来实现k近邻算法,并通过信息增益概念解释了决策树的特征选择过程。

weixin_33072399的博客 540

开始学习机器学习时你必须要了解的模型有哪些?机器学习系列之决策树基础篇

前言:为什么要了解决策树? 决策树,一个只要接触了机器学习就必然要学会的算法模型。 决策树的算法原理虽然简单,但是模型本身适用面极广,且在分类问题和回归问题上均有良好的表现,外加使用简单,无需人为进行过多变量调整和数据预处理,同时生成规则清晰,模型本身可解释性非常强,因此在各个行业均有广泛应用。 也就是说,只要你学习研究或者接触的行业需要用到分类回归算法,那么决策树必然是你需要掌握的,无论导师也好公司领导也好,都会要求你理解并懂得如何使用决策树。 那么本篇文章,就会带大家系统的了解什么是决策树? 目录前言:

w0714的博客 3万+

使用Python构建和应用决策树算法

决策树算法是一种广泛应用于分类和回归任务的机器学习技术。它的模型形式类似于一棵树,通过一系列规则对数据进行分治式的处理。这些规则被编码为树的节点,每个节点都包含对某个属性的测试,树的分支代表测试结果,最终达到叶节点时会得到一个决策结果。尽管决策树模型看起来简单,但它们在结构上可以非常复杂,并能够捕捉数据中的非线性关系。本章我们将从决策树的基本概念入手,探讨其在数据科学领域的重要地位,并为接下来深入学习各类决策树算法打下基础。通过对决策树算法的概览,读者将对其功能和适用场景有一个初步的认识。

weixin_42601134的博客 897

基于多维关联规则的决策树分类法

决策树是一种分类和预测的方法,最后产生一个树型结 构:每一个叶节点包含一个类别,每一个中间节点是一个扩 展属性,每一个分枝由扩展属性值决定,树的最高层节点就 是根节点。 为了对未知数据对象进行分类识别,可以根据决策树的 结构对数据集中的属性值进行测试,从决策树的根节点到叶 节点的一条路径就形成了对应对象的类别预测。可以很容易 的将决策树转换为相应的规则。

ML之分类预测:以六类机器学习算法(kNN、逻辑回归、SVM、决策树、随机森林、提升树、神经网络)对糖尿病数据集(8→1)实现二分类模型评估案例来理解和认知机器学习分类预测的模板流程

ML之分类预测:以六类机器学习算法(kNN、逻辑回归、SVM、决策树、随机森林、提升树、神经网络)对糖尿病数据集(8→1)实现二分类模型评估案例来理解和认知机器学习分类预测的模板流程 目录 六类机器学习算法(kNN、逻辑回归、SVM、决策树、随机森林、提升树、神经网络)对糖尿病数据集(8→1)实现二分类预测 数据集理解 1、kNN 2、逻辑回归 3、SVM 4、决策树 5、随机森林 6、提升树 7、神经网络 相关文章 ML之分类预测:以六类机器学习算法(kNN、逻辑回归

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 1万+

74hc595驱动模块的Verilog设计(线性状态机)

module hc595_driver( input clk, //50Mhz input rst_n, //复位信号 input [15:0] data, //数码管待显示数据,8位段选数据,8位位选数据 input en, //使能 o...

qq_41294540的博客 3740

【机器学习】回归决策树

回归决策树1. 原理概述2. 算法描述3. 简单实例3.1 实例计算过程3.2 回归决策树和线性回归对比4. 小结 1. 原理概述 上篇文章已经讲到,关于数据类型,我们主要可以把其分为两类,连续型数据和离散型数据。在面对不同数据时,决策树也 可以分为两大类型: 分类决策树和回归决策树。 前者主要用于处理离散型数据,后者主要用于处理连续型数据。 不管是回归决策树还是分类决策树,都会存在两个核心问题: 如何选择划分点? 如何决定叶节点的输出值? ⼀个回归树对应着输入空间(即特征空间)的⼀个划分以及在划分单元

全网粉丝30W+,优快云、稀土掘金人工智能领域签约作者,人工智能、大模型、Python 爬虫,商务合作,请私信沟通。 1万+

C#精准获取Windows已安装应用清单的完整方案

Windows已安装应用识别是IT资产管理、安全合规与自动化运维的基础能力。其核心原理在于突破文件系统表象,以注册表为可信数据源,分层解析HKLM/HKCU、64位/32位视图及MSI Products路径中的元数据。技术价值体现在可验证(如过滤SystemComponent=1)、可关联(通过ProductCode绑定补丁与许可证)、可操作(启动路径二次验证+卸载命令沙箱执行)。典型应用场景包括终端合规审计、软件资产清查、静默卸载脚本开发及多版本应用聚合分析。本文聚焦C#原生实现,覆盖注册表四路采集、La

weixin_33552698的博客 634

adb详细教程(四)-使用adb启动应用、关闭应用、清空应用数据、获取设备已安装应用列表

adb对于安卓移动端来说,是个非常重要的调试工具。通过ADB可以操作、管理设备上的应用。

公众号|软件测试老吴 3万+
上一篇: 优快云写作小技巧—— Markdown 语法排版
下一篇: 深度之眼比赛实战(未来销售预测)项目记录——4——一周学习任务总结
Robin_Pi
博客等级 码龄9年 2万+粉丝 632原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值