经典监督式学习算法决策树作为最经典的机器学习算法之一,决策树(包括其衍生或以其为最小决策单元的算法,包括随机森林

作为最经典的机器学习算法之一,决策树(包括其衍生或以其为最小决策单元的算法,包括随机森林、坡度爬升树、XGBoost等)在神经网络盛行的今天,在监督式学习算法家族中,依旧有着重要的地位。

它是一种基于树形模型提供决策能力的机器学习预测模型,树中的每个节点表示对象,而相应的分叉路径代表其属性值,叶子结点则对应从根节点到该叶子结点所经历的路径表示的对象的值。下文将会在阐述决策树的基本原则与原理的基础上,通过一个经典的例子来展示一个基本的决策树模型是如何运作的。

对于监督式学习任务往往存在以下的训练集和目标:训练集:S={(X1,y1),...,(Xn,yn)}目标:h:X->y的映射,能在实际任务T中有着较好的表现。(h表示hypothesis)

对于模型在真实情景下的运行情况,我们不得而知。但是我们通常会在一组被标记过的训练集上验证模型的性能。而经验风险最小化原理,机器学习算法的最终目标是在一类假设(asetofhypotheses)中找到一个在数据集上平均损失函数最小的假设(即风险最小的):

**R(h)=E(L(h(x),y))E表示期望,L表示损失函数**

当然,这一切都是建立在训练集对真实情况有足够的代表性的前提下。众所周知,在训练集往往对真实情况缺乏代表性,结果就是造成模型的过拟合,类似带答案的习题和期末考试之间的差别。

这个数据集中,Outlook有Sunny,Overcast,Rain三种状态,Temp有Hot,Mild,Cold三种状态,Humid有High.Normal两种状态,Wind有Weak,Strong两种状态。因此一共有3x3x2x2=36种组合,每种组合对应Yes和No两种预测结果。因次,对于这个打网球的问题,如果我们想建立一个决策树的模型,这里一共会存在236种不同的假设(hypotheses),而其中哪种假设会是最合适的模型,这便是接下来我们需要讨论的问题。

上一节中我们指出了对于这个训练集一共存在236种不同的决策树模型,而这些可能的模型中,又有多少在这14个样本上(样本不互相矛盾)能做到完全正确的预测模型呢?答案是2(36-14)=222种。

十四世纪的方济会修士WilliamofOccam提出过一条经典的逻辑学法则:若无必要,勿增实体(Ifnotnecessarynotbyentity)。换言之就是一切体系应该尽可能地简单。这条理论可以同先前提到的经验风险最小化结合起来,成为决策树构造设计的基石。由于这是一个NP-Hard问题,为了在222种能达到目的的模型中挑选出最简洁的,我们在这里可以使用一种贪心的递归策略(GreedyProcedure-Recursive),从根阶段开始进行以下循环:

在决策树的生长策略中,我们提到了每次需要选择一个合适的属性作为节点,事实上我们所要做的事最大化该节点的后代对标签的区分度(减少分类的随机性)。举个例子,属性A沿着0和1两个值生长,子节点上的样本的标签分别为(4Yes,4No),(3Yes,3No)。属性B沿着0和1两个值生长,子节点上的样本标签分别为(8Yes,0No),(0Yes,6No)。那么很明显选择B节点会更具区分度。而量化这种区分度的指标一般可以有两种,基尼不纯度(GiniImpurity)和信息增益(InformationGain),原则上决策树应该沿着基尼指数或者交叉熵损失下降最快的方向上生长。

如果标签的数量分布如下:n1,n2,......,n****L

那交叉熵损失可以被描述为:

H(S)=(n1/n)*log(n/n1)+(n2/n)*log(n/n2)+......+(nL/n)*log(n/nL)

通过父节点(S)的交叉熵损失与子节点(v)的加权交叉熵损失之间的差,我们可以求得信息增益:

IG(S)=H(S)-(n1/n)H(v1***)-(n2/n)H(v2**)-......-(nL**/n)H(vL****)

类似地,基尼指数可以被描述为:

**Gini(S)=1-(n1/n)2-(n2/n)2-.......-(nL/n)**2

同样地,基尼不纯度可以根据父节点(S)的基尼指数与子节点(v)的加权基尼指数之间的差求得:

GiniImp(S)=Gini(S)-(n1/n)Gini(v1***)-(n2/n)Gini(v2**)-......-(nL**/n)Gini(vL****)

如果用之前提到的网球的例子,那么一颗完整的决策树用基尼不纯度作为决策方法,它的生长过程会是这样子的。首先根节点处,在没有使用任何属性时,训练集可分为(9Yes,5No),相应的基尼指数如下:

分别计算以四种维度的属性作为决策树生长的指标的基尼不纯度:

很明显Outlook属性的基尼不纯度最高,意味着此时选择这一维度生长下去更能区分训练集。

我们可以观察到在Outlook的值为Overcast时,样本为(4Yes,0No),意味着这一分支全部分类正确,可以终结。如果将Sunny属性计为OS,Rain属性计为OR,接下来的基尼不纯度在选择Outlook-Sunny后可以如下计算:

很明显选择Humidity能最大程度减小随机性,因此Outlook-Sunny一支的子节点为Humidity。同时我们观察到此后所有样本皆能正确分类,此分支可终结。

相似地对于Outlook-Rain一支,可以计算如下:

显然选择Wind作为子节点能最大程度减小随机性,同时我们观察到此后的样本皆能正确分类,因此此分支终结。综上所述,我们可以得到如下结构的一棵决策树,这是我们使用了递归贪心策略生成的较优解(在ERM与Ockham'sRazor原则指导下):

决策树的过拟合抑制策略一般可以分为先剪枝(Prepruning)和后剪枝(Postpruning)。其中先剪枝一般是根据预设的规则(如最大节点数、最大高度、基尼不纯度或者信息增益的增长幅度等)来提前停止树的生长。而后剪枝是在树完全生长后进行修剪,比如根据复杂度对损失增加惩罚项,在后剪枝的过程中,那些对基尼不纯度或者信息增益提升效率低下的分支就会被剔除。

THE END
1.机器学习算法二决策树决策树id3.5决策树也是机器学习算法中的入门算法,算法原理简单效果良好,尤其是以树模型为基础的各种集成算法,更是功能强大,预测准确,还适用各种数据。决策树作为树一族算法的基模型,我觉得非常有必要认真梳理一下。 (一)决策树的基本原理 语言太苍白,看下图: 1、左边的表格是和决策树算法匹配的数据形式,前面讲KNN时,一开始就https://blog.csdn.net/friday1203/article/details/135084711
2.机器学习机器学习算法决策树算法什么是决策树? 决策树(Decision Tree)是一种常用的数据挖掘和机器学习算法,主要用于分类和回归任务。决策树通过从根节点到叶节点的路径来表示决策规则,其中每个内部节点代表一个属性上的测试,每个分支代表一个测试输出,每个叶节点代表一个类别或输出值。 https://www.ctyun.cn/zhishi/p-443265
3.机器学习二决策树51CTO博客一、决策树定义: 分类决策树模型是一种描述对实例进行分类的树形结构。决策树由结点(node)和有向边(directed edge)组成。 结点有两种类型:内部结点(internal node)和叶结点(leaf node)。内部结点表示一个特征或属性,叶结点表示一个类。 ?:内部结点 https://blog.51cto.com/u_14682436/8643884
4.机器学习入门126决策树解决回归问题腾讯云开发者社区机器学习入门 12-6 决策树解决回归问题 前言 前几个小节一直在使用决策树解决分类问题,其实决策树这种思想也可以非常容易的解决回归问题。使用 CART 这种方式构建决策树之后,训练好的决策树中的每一个叶子节点中都会有很多样本点。在预测阶段,如果一个新的测试样本点输入到决策树中,最终会到达某一个叶子节点上。https://cloud.tencent.com/developer/article/1782011
5.机器学习——决策树决策树是一种经典的机器学习算法,用于解决分类和回归问题。它是一种基于树结构的模型,其中每个节点代表一个属性判断,每个分支代表这个属性判断的结果,每个叶节点代表一种类别(在分类问题中)或者一个数值(在回归问题中)。 以下是决策树的一些关键概念和特性: https://www.jianshu.com/p/786ea7d8300c
6.机器学习在本章中,我们将向您展示如何制作“决策树”。决策树是一种流程图,可以帮助您根据以前的经验进行决策。 在这个例子中,一个人将尝试决定他/她是否应该参加喜剧节目。 幸运的是,我们的例中人物每次在镇上举办喜剧节目时都进行注册,并注册一些关于喜剧演员的信息,并且还登记了他/她是否去过。 AgeExperienceRankNationahttps://www.w3school.com.cn/python/python_ml_decision_tree.asp
7.python机器学习之决策树分类详解python这篇文章主要介绍了python机器学习之决策树分类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下决策树分类与上一篇博客k近邻分类的最大的区别就在于,k近邻是没有训练过程的,而决策树是通过对训练数据进行分析,从而构造决策树,通过决策树来对测试数据进行分类,同样是属于监督学习的范畴。决策树的结果类似如下图:https://www.jb51.net/article/131032.htm
8.解密人工智能:决策树随机森林朴素贝叶斯随机森林是一种集成机器学习算法,可用于分类和回归任务。它是多个决策树的组合,其中每棵树都是使用数据的随机子集和特征的随机子集来生长的。最终的预测是通过对森林中所有树木的预测进行平均来做出的。 使用多个决策树背后的想法是,虽然单个决策树可能容易过度拟合,但决策树的集合或森林可以降低过度拟合的风险并提高模https://nic.hnuu.edu.cn/10043/2023/0029308.html
9.95后哈佛小哥撰写《从零开始的机器学习》,入门必备,书籍资源已开放第五章演示了如何构建决策树。第一部分涵盖了回归任务,其中目标变量是定量的;第二部分涵盖了分类任务,其中目标变量是分类的。 决策树是用于回归和分类的可解释机器学习方法。树根据所选预测变量的值迭代地拆分训练数据的样本。每次拆分的目的是创建两个子样本(即「孩子」)。其目标变量的 purity 高于其「父亲」。对于https://m.thepaper.cn/baijiahao_9418519
10.数据挖掘的技术有很多种,按照不同的分类有不同的分类法机器学习可细分为:归纳学习方法(决策树、规则归纳等)、基于示例学习、遗传算法等。统计方法可细分为:回归分析(多元回归、自回归等)、判别分析(贝叶斯判别、费歇尔判别、非参数判别等)、聚类分析(系统聚类、动态聚类等)、探索性分析(主元分析、相关分析等)。).前向神经网络(BP算法等)可细分为神经网络方法、自组织https://www.tulingxueyuan.cn/tlzx/jsp/1626.html
11.壹生资讯方法以中国国家卒中登记(China national stoke registry,CNSR)数据库中的新发AIS患者为研究对象,通过logistic回归模型确定进入模型的预测因子,分别基于机器学习[CatBoost模型、XGBoost模型、梯度提升决策树(gradient boosted decision trees,GBDT)模型、随机森林模型]和传统logistic回归模型构建新发AIS患者1年预后不良(mRS≥3分https://www.cmtopdr.com/post/detail/3912c3ab-b936-4163-ab35-bff7845d53f6