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

作为最经典的机器学习算法之一,决策树(包括其衍生或以其为最小决策单元的算法,包括随机森林、坡度爬升树、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.人工智能技术基础系列之:无监督学习算法AI实战无监督学习通常被应用于以下三个领域: 数据聚类:无监督学习可以用来发现数据中隐藏的结构和模式。例如,给定一组照片,无监督学习算法可以将它们分成若干个主题(如人脸、自拍照、地点),每个主题下又https://download.csdn.net/blog/column/12277289/133971329
2.机器学习(二)之无监督学习:数据变换聚类分析无监督学习算法只有输入数据,而没有已知的输出标签(label),我们需要从这些数据中学习到信息。常见的无监督学习包括数据集变换和聚类。 数据集的无监督变换(unsupervised transformation)是创建数据新的表示的算法,与数据的原始表示相比,新的表示可能更容易被人或其他机器学习算法所理解。无监督变换的一个常见应用是降维(https://www.flyai.com/article/516
3.下列属于无监督学习算法的是()证券投资顾问考试题库下列属于无监督学习算法的是()。 A 、策树决 B 、聚类 C 、支持向量机 D 、朴素贝叶斯 扫码下载亿题库 精准题库快速提分 参考答案 【正确答案:B】 无监督学习常见算法如聚类。https://www.bkw.cn/tiku/GPqe5.html
4.无监督深度学习经典算法无监督算法举例2,无监督:通常被称为无监督学习(Unsupervised Learning),通常用于在拥有的数据集没有被标记,也没有确定的结果的情况下对数据进行分类。无监督学习一般根据样本间的相似性对样本集进行分类,试图使类内差距最小化,类间差距最大化。常用的无监督学习方法有EM算法,K-MEANS聚类,稀疏自编码,限制波尔兹曼机等 https://blog.51cto.com/u_16099252/9423357
5.第十四章无监督学习14.1 无监督学习 聚类算法(非监督学习算法)。我们将要让计算机学习无标签数据,而不是此前的标签数据。 在一个典型的监督学习中,我们有一个有标签的训练集,我们的目标是找到能够区分正样本和负样本的决策边界,在这里的监督学习中,我们有一系列标签,我们需要据此拟合一个假设函数。与此不同的是,在非监督学习中,我们https://www.jianshu.com/p/8c91fd177c00
6.机器学习:什么是无监督学习(UnsupervisedLearning)?上一片文章我们了解了监督学习,监督学习是一种目的明确的训练方式,通过已知因素和已知的结果,通过机器训练,是机器能学会通过已知因素得到未知的结果。而无监督学习是通过给未知的数据,进行分类,也许你就会问了,我都不知道有什么规律,我怎么区分类呢?这就是用到算法模型了。 https://cloud.tencent.com/developer/article/1804152
7.机器学习中的有监督和无监督都包括些什么?机器学习算法通常分为有监督的(训练数据有标记答案)和无监督的(可能存在的任何标签均未显示在训练算法中)。有监督的机器学习问题又分为分类(预测非数字答案,例如错过抵押贷款的可能性)和回归(预测数字答案,例如下个月在曼哈顿商店出售的小部件的数量)。 https://www.cda.cn/view/27593.html
8.头条文章跟监督学习相反,无监督学习中数据集是完全没有标签的,依据相似样本在数据空间中一般距离较近这一假设, 将样本分类。常见的无监督学习算法包括:稀疏自编码(Sparse Auto Encoder)、主成分分析(Principal Component Analysis, PCA)、K-Means 算法(K 均值算法)、DBSCAN算法(Density-Based Spatial Clustering of Applicationshttps://card.weibo.com/article/m/show/id/2309404598738399395890
9.科学网—[转载]最实用的机器学习算法优缺点分析,没有比这篇说得更分类是一种用于分类变量建模及预测的监督学习算法,使用案例包括员工流失、邮件过滤、金融欺诈等的预测。 正如你所见,许多回归算法都有其对应的分类形式,分类算法往往适用于类别(或其可能性)的预测,而非数值。 逻辑回归 2.1 (正则化)逻辑回归 逻辑回归是线性回归所对应的分类方法,基本概念由线性回归推导而出。逻辑回归https://blog.sciencenet.cn/blog-1396960-1170780.html
10.无监督神经网络:算法与应用无监督学习算法:无监督学习算法是一种基于深度学习的无监督学习方法,它可以利用神经网络的学习能力和非线性映射能力来从原始数据中自动提取特征。无监督学习算法的典型代表包括堆叠式自编码器(stacked autoencoder)和生成对抗网络(generative adversarial network,GAN)。 其他无监督神经网络算法:除了无监督感知算法和无监督学https://developer.baidu.com/article/detail.html?id=2157019
11.MachineLearning系列一文带你详解什么是无监督学习与监督学习不同,无监督学习不需要事先标记好的训练数据,而是通过对数据的自动处理和聚类来进行学习。无监督学习可以分为两类问题:聚类和降维。聚类问题是将数据分成不同的组或簇,使得同一组内的数据相似度高,不同组之间的相似度低。降维问题是将高维数据映射到低维空间,以减少特征维度和数据复杂性。二、算法 https://open.alipay.com/portal/forum/post/132601050
12.迁移性好多用途,港中文提出特征分离的无监督人类三维姿态表征本文将介绍一种基于特征分离的通用人类姿态特征的学习算法Unsupervised Human 3D Pose Representation with Viewpoint and Pose Disentanglement。 该算法从无监督的特征分离过程中,习得了一个迁移性好、多用途的人类3D姿势的表征,从而有助于人工智能系统获取对人体姿态一个通用本质的理解。 https://xkxy.xauat.edu.cn/info/1085/3914.htm
13.基于深度学习的无监督领域自适应语义分割算法综述AET基于深度学习的无监督领域自适应语义分割算法综述 引言 语义分割是计算机视觉的基础任务之一,它为图像的每个像素进行类别预测,目的是将图像分割成若干个带有语义的感兴趣区域,以便后续的图像理解和分析工作,推动了自动驾驶、虚拟现实、医学影像分析和卫星成像等领域的发展。近几年来,语义分割模型的性能有着巨大的提升。http://m.chinaaet.com/tech/designapplication/3000163427
14.一文看懂無監督學習(基本概念+使用場景+2類典型演算法)無監督學習是機器學習領域內的一種學習方式。本文將給大家解釋他的基本概念,告訴大家無監督學習可以用用到哪些具體場景中。最後給大家舉例說明2類無監督學習的思維:聚類、降維。以及具體的4種演算法。https://easyai.tech/ai-definition/unsupervised-learning/