经典机器学习算法——决策树

这篇具有很好参考价值的文章主要介绍了经典机器学习算法——决策树。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

优质博文:IT-BLOG-CN

树模型是机器学习中最常用的一类模型,包括随机森林、AdaBoost、GBDT(XGBoost和Lightgbm)等,基本原理都是通过集成弱学习器的即式来进一步提升准确度。这里的弱学习器包括线性模型和决策树模型,本期介绍的就是决策树模型(DecisionTree)。

决策树属于有监督学习,即可用于回归问题也能解决分类问题,对应的模型称为回归树和分类树。模型的结构采用树图形式展示:
经典机器学习算法——决策树,其他,机器学习,算法,决策树,java,数据库,人工智能,mysql
其中圆圈表示分裂节点,矩形(右子结点)表示输出结果y。树也可以认为是运用if-then规则做预测的算法,而模型训练的本质就是寻找最优分裂节点(非右子结点)。

CART算法

常见的树模型有ID3、C4.和CART,其中CART全称为分类不回归树(ClassificationAndRe-gressionTee),本文主要介绍CART树。

假训训练集D中为特征集,为输出变量。CART采用二叉树结构,方内部节点特征的取值为“是”和“否”,左分支取值为“是”,右分支取值为“否”。一般使用递归方法生成树:
经典机器学习算法——决策树,其他,机器学习,算法,决策树,java,数据库,人工智能,mysql
其中Xi为切分变量,a为切分点,CART树的生成过程就是寻找这两个变量的最优值过程。

回归树生成算法

首先根据给定的切分变和切分点定义B1和B2子集:经典机器学习算法——决策树,其他,机器学习,算法,决策树,java,数据库,人工智能,mysql经典机器学习算法——决策树,其他,机器学习,算法,决策树,java,数据库,人工智能,mysql

对于落入同一子集内的数据,CART树会输出相同的值经典机器学习算法——决策树,其他,机器学习,算法,决策树,java,数据库,人工智能,mysql,一般采用平方误差(MSE)最小的准则来确定经典机器学习算法——决策树,其他,机器学习,算法,决策树,java,数据库,人工智能,mysql,以B1为例:
经典机器学习算法——决策树,其他,机器学习,算法,决策树,java,数据库,人工智能,mysql
针对给定的切分变量Xi,优化下式可得到最优切分点a:
经典机器学习算法——决策树,其他,机器学习,算法,决策树,java,数据库,人工智能,mysql
通过遍历所有的特征变量找出最优切分变量,再以同样的方式对B1和B2子集做划分,直到满足停止条件

停止条件一般有:1、子集内的训练样本数小于预训的阈值;2、子集内的MSE小于预训的阀值.

分类树生成算法

CART算法中回归树和分类树的主要区别在于计算最优切分点a时采用的准则不同,前者采用了最小化MSE,后考利用基尼系数

先介绍基尼系数的定义,在分类问题中,输出变量的分类水平数为K,样本数据集为B,Ci表示B中属于第i类的样本子集,则数据集B的基尼系数为:
经典机器学习算法——决策树,其他,机器学习,算法,决策树,java,数据库,人工智能,mysql
其中经典机器学习算法——决策树,其他,机器学习,算法,决策树,java,数据库,人工智能,mysql经典机器学习算法——决策树,其他,机器学习,算法,决策树,java,数据库,人工智能,mysql分别表示数据集C和B中的样本量。该指标反映了数据集B的不确定性,方基尼系数值越大,样本集B的不确定性越大。
经典机器学习算法——决策树,其他,机器学习,算法,决策树,java,数据库,人工智能,mysql
对于给定的切分变量Xi和切分点a,数据集B被分割成B和B2两个子集:经典机器学习算法——决策树,其他,机器学习,算法,决策树,java,数据库,人工智能,mysql经典机器学习算法——决策树,其他,机器学习,算法,决策树,java,数据库,人工智能,mysql

在切分变量Xi和切分点a下,数据集B的基尼系数定义为:
经典机器学习算法——决策树,其他,机器学习,算法,决策树,java,数据库,人工智能,mysql

该指标反映的是数据集B经过Xi=a分割后的不确定性。

在所有可能的特征以及它们所有可能的切分点中,选择基尼系数最小的特和切分点作为最优切分特和最优切分点,依次递归生成一棵CART分类树。

在寻找每个最优分裂节点时,对特征变和切分点的遍历实际上可以做并行计算,可以有效提高模型的训练速度。另外类似于线性模型,树模型也会存在过拟合的问题。

为了防止出现过拟合现象,一般树模型的训练过程中还会有剪枝的过程。剪枝的主要过程是去除那些训练样本量很小的叶节点以及没必要继续分裂的非叶子节点,仅而减小树的复杂度。

假设已生成一棵CART树T(待剪枝),那么用于对T剪枝的损失函数为:
经典机器学习算法——决策树,其他,机器学习,算法,决策树,java,数据库,人工智能,mysql
其中C(T)为当前训练样本的预测误差,比如平方损失(MSE);α|T|为惩罚项,非负数α称为惩罚系数,|T|表示树T的复杂度,可以是叶子节点个数。

对于惩罚系数α有三种情况:
1、当α=0时,那么Cα(T)=C(T),此时无需作剪枝,T就是最优子树;
2、当α过小时,树模型的复杂度|T|对Cα(T)的影响偏小,此时剪枝过程侧重于降低预测误差,可能导致最优子树仍存在过拟合;
3、当α过大时,树模型的复杂度|T|对Cα(T)的影响偏大,此时剪枝过程侧重于简化树,可能导致最优子树欠拟合。

对于固定的α0,则必存在对应的最优子树T0。对于α序列{α0,α1,…,αn},有对应的最优子树序列{T0,T1,…,Tn},然后取最优子树中交叉验证集(CV)效果最好的那棵树作为最织的剪枝模型输出既可。

对于某个非叶子结点而言,剪枝前后的损失函数差值为:
经典机器学习算法——决策树,其他,机器学习,算法,决策树,java,数据库,人工智能,mysql
其中|t|是指以t为根节点的子树复杂度,当diff=0说明剪枝操作不影响损失函数(一般仍会采取剪枝来降低模型复杂度);diff>0说明该节点t需要剪枝,此时:
经典机器学习算法——决策树,其他,机器学习,算法,决策树,java,数据库,人工智能,mysql
取等时的临界值训为αt,计算出每个非叶子结点(内节点)的临界值后,叧要获取给定的α值既可知道该节点是否需要剪枝,仅而得出最优子树Tα。

将上述有关CART树剪枝的内容整理成如下算法步骤:
(1)输入生成的CART树T;
(2)遍历各内部节点并计算α临界值:经典机器学习算法——决策树,其他,机器学习,算法,决策树,java,数据库,人工智能,mysql

(3)获得内部节点α临界值的序列a={α0,α1,…,αn};
(4)遍历a,得到相应的最优子树序列{T0,T1,…,Tk},k≤n;
(5)用CV法把最优子树序列{T0,T1,…,Tk}中验证误差最小的子树作为剪枝后的最优模型输出。

需要注意的是当α取不同值时,对应的最优子树可能相同,既剪枝方法相同,所以最优子树序列中的个数≤内部节点数。文章来源地址https://www.toymoban.com/news/detail-861571.html

到了这里,关于经典机器学习算法——决策树的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 机器学习算法系列(四)-- 决策树

    最经典的机器学习模型之一,成树型结构,决策树的目的是为了产生一颗泛化能力强,处理未见实例能力强的树,通过特征判断不断分类,基本流程遵循“分而治之”的递归分类策略。 关键 就是选取对训练数据具有分类能力的特征,可提高决策树学习的效率。通常特征选择

    2023年04月23日
    浏览(14)
  • 【机器学习】十大算法之一 “决策树”

    作者主页: 爱笑的男孩。的博客_CSDN博客-深度学习,活动,python领域博主 爱笑的男孩。擅长深度学习,活动,python,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域. https://blog.csdn.net/Code_and516?type=blog 个人简介:打工人。 持续分享

    2024年02月11日
    浏览(11)
  • Python 机器学习入门 - - 决策树算法学习笔记

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 ChatGPT一问世就给整个社会带来巨大的震撼和冲击,不禁让人惊叹现在AI的强大,我们好像离通用人工智能更近一步。在过去十几年人工智能领域的蓬勃发展中,扮演着主导地位的算法基本都是神经网络和

    2023年04月08日
    浏览(9)
  • 传统机器学习(五)决策树算法(一)

    ​ 可以参考:机器学习实战(二)决策树-分类树(海洋生物数据集案例) 分类树参数如下 回归树DecisionTreeRegressor的入参与分类树基本相同,不同之处在于: criterion可选值:mse:默认,均方差,mae:平均绝对差,friedman_mse 没有class_weight 用sklearn建好决策树后,可以打印出树的

    2023年04月22日
    浏览(11)
  • 机器学习——决策树1(三种算法)

    要开始了…内心还是有些复杂的 因为涉及到熵…单纯的熵,可以单纯 复杂的熵,如何能通俗理解呢… 我也没有底气,且写且思考吧 首先,决策树的思想,有点儿像KNN里的KD树。 KNN里的KD树,是每次都根据某个特征,来将所有数据进行分类。 决策树也是,每次都根据某个特征

    2024年02月12日
    浏览(15)
  • 《机器学习核心技术》分类算法 - 决策树

    「作者主页」: 士别三日wyx 「作者简介」: CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」: 小白零基础《Python入门到精通》 决策树是一种 「二叉树形式」 的预测模型,每个 「节点」 对应一个 「判断条件」 , 「满足」 上一个条件才

    2024年02月11日
    浏览(21)
  • 【机器学习入门】决策树算法(三):C5.0算法

    C5.0算法是昆兰在C4.5算法的基础上提出的 商用改进 版本,目的是对含有大量数据的数据集进行分析。 C5.0算法的训练过程大致如下。 假设训练的样本集S共有n个样本,训练决策树模型的次数为T,用Ct表示t次训练产生的决策树模型,经过T次训练后最终构建的复合决策树模型表

    2024年02月08日
    浏览(28)
  • 机器学习基础之《分类算法(6)—决策树》

    一、决策树 1、认识决策树 决策树思想的来源非常朴素,程序设计中的条件分支结构就是if-else结构,最早的决策树就是利用这类结构分割数据的一种分类学习方法 2、一个对话的例子 想一想这个女生为什么把年龄放在最上面判断!!! 如何高效的进行决策?特征的先后顺序

    2024年02月09日
    浏览(16)
  • 决策树:理解机器学习中的关键算法

    决策树是一种流行而强大的机器学习算法,它从数据中学习并模拟决策过程,以便对新的未知数据做出预测。由于其直观性和易理解性,决策树成为了分类和回归任务中的首选算法之一。在本文中,我们将深入探讨决策树的工作原理、如何构建决策树、它们的优缺点,以及在

    2024年01月18日
    浏览(14)
  • 机器学习算法之决策树(decision tree)

    决策树(Decision Tree,又称为判定树)算法是机器学习中常见的一类算法,是一种以树结构形式表达的预测分析模型。决策树属于监督学习(Supervised learning),根据处理数据类型的不同,决策树又为分类决策树与回归决策树。最早的的决策树算法是由Hunt等人于1966年提出,Hunt算法

    2024年02月13日
    浏览(21)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包