前言
《机器学习》,又称西瓜书,是南京大学教授周志华教授编著的一本机器学习领域的经典教材。《机器学习》系统地介绍了机器学习的基本理论、常用算法及其应用。全书内容丰富,涵盖了机器学习的多个重要方面,包括监督学习、无监督学习、强化学习等主要学习范式。《机器学习》适合计算机科学、人工智能、数据科学等相关专业的本科生、研究生以及对机器学习感兴趣的自学者。无论是初学者希望系统地学习机器学习的基础知识,还是有一定基础的研究人员和从业者希望深入了解前沿技术,这本书都能提供有价值的参考。
在接下来的日子里,我将每周精心打磨一章内容,全方位、多角度地为大家剖析书中精髓。无论是复杂难懂的算法,还是晦涩难解的公式,我都会以通俗易懂的方式逐一解读,力求让每一位读者都能轻松掌握其中的奥秘。让我们一起在知识的海洋中遨游,探索机器学习的无限魅力!
第一章:西瓜书《机器学习》全网最详细解读 第一章:绪论_机器学习 西瓜书-优快云博客
第二章:西瓜书《机器学习》全网最详细解释 第二章:模型评估-优快云博客
第三章 :西瓜书《机器学习》全网最详细解读 第三章:线性模型-优快云博客
在本系列中:
- 重点内容将使用加粗或者红字显示
- 普通内容使用普通颜色显示
- 示例使用蓝色显示
-
-
4.1 基本流程
决策树(decision tree)是一类常见的机器学习方法,是一种基于树结构的监督学习算法,广泛应用于分类和回归任务中。
-
定义:决策树是一种树形结构,一般的,一棵决策树包含一个根结点、若干个内部结点和若干个叶结点;叶结点对应于决策结果,其他每个结点则对应于一个属性测试;每个结点包含的样本集合根据属性测试的结果被划分到子结点中;根结点包含样本全集。从根结点到每个叶结点的路径对应了一个判定测试序列。
-
工作过程:从根节点开始,根据样本的特征值选择分支,逐步向下移动,直到到达叶节点,最终得到分类结果或预测值。
通俗理解:就像你站在一个路口,面前有几条路可以选择。对于新的样本,你需要查看它的每个特征值(例如,天气、温度、湿度等)。这些特征值将决定你沿着哪条路径前进。每次选择路径后,你会到达一个新的节点。这个新节点可能还会根据另一个特征让你再次选择路径。你继续根据样本的特征值选择路径,沿着树的结构一步步向下走。当你到达一个叶节点(也就是树的“叶子”)时,预测过程就结束了。叶节点通常包含一个最终的预测结果。这就像是你终于到达了目的地,找到了答案。
举个例子
假设你有一棵决策树,用于判断是否适合去野餐。树的结构如下:
-
根节点:天气(晴朗/多云/下雨)
-
如果天气=晴朗,沿着“晴朗”分支走。
-
如果天气=多云,沿着“多云”分支走。
-
如果天气=下雨,沿着“下雨”分支走。
-
-
晴朗分支:温度(高/中/低)
-
如果温度=高,沿着“高”分支走。
-
如果温度=中,沿着“中”分支走。
-
如果温度=低,沿着“低”分支走。
-
-
晴朗且温度=中:最终到达叶节点,预测结果为“适合野餐”。
现在,你有一个新样本:天气=晴朗,温度=中。预测过程如下:
-
从根节点开始,根据“天气=晴朗”,沿着“晴朗”分支走。
-
到达“晴朗”分支后,根据“温度=中”,沿着“中”分支走。
-
最终到达叶节点,得到预测结果:“适合野餐”。
-
决策树学习的目的是为了产生一棵泛化能力强,即处理未见示例能力强的决策树,其基本流程遵循简单且直观的“分而治之”(divide-and-conquer)策略。
“分而治之”(Divide and Conquer)是一种常见的算法设计策略,它通过将复杂问题分解为多个相对简单的子问题,分别解决这些子问题,最后将子问题的解合并为原问题的解。
接下来我们来看看决策树的基本创建过程:
- 选择最优特征 :从所有特征中选择一个最优特征,用于在当前节点进行分裂。
-
分裂数据:根据选择的最优特征,将数据集划分为多个子集。每个子集对应一个分支。
-
递归构建子树:对每个子集重复上述步骤(选择最优特征、分裂数据),递归地构建子树。直到满足停止条件,例如:
-
节点中的样本属于同一类别(分类任务)或目标值差异很小(回归任务)。
-
节点中的样本数量小于某个阈值。
-
树的深度达到预设的最大深度。
-
-
生成决策树:通过上述递归过程,最终生成一棵完整的决策树,根节点对应初始数据集,叶节点对应最终的分类结果或预测值。
书上的算法解读如下:
-
由此可以看出决策树的生成是一个递归过程。在决策树基本算法中,有三种情形会导致递归返回:
- 当前结点包含的样本全属于同一类别,无需划分;
- 当前属性集为空,或是所有样本在所有属性上取值相同,无法划分。我们把当前结点标记为叶结点,并将其类别设定为该结点所含样本最多的类别;
- 当前结点包含的样本集合为空,不能划分,我们把当前结点标记为叶结点,但将其类别设定为其父结点所含样本最多的类别。
注意这两种情形的处理实质不同:情形(2)是在利用当前结点的后验分布,而情形(3)则是把父结点的样本分布作为当前结点的先验分布。
-
-
4.2 划分选择
由算法4.2可看出,决策树学习的关键是第8行,即如何选择最优划分属性。
一般而言,随着划分过程不断进行,我们希望决策树的分支结点所包含的样本尽可能属于同一类别,即结点的“纯度”(purity)越来越高。4.2节的三个指标都是评估所谓“纯度”变换程度的指标。
4.2.1 信息增益
“信息熵”(information entropy)是度量样本集合纯度最常用的一种指标。
在信息论中:熵是由克劳德·香农(Claude Shannon)引入的概念,用于衡量信息的不确定性或信息量。
假定当前样本集合D中第k类样本所占的比例为,则D的信息熵定义为
,Ent(D)的值越小,则D的纯度越高。
假定离散属性a有V个可能的取值,若使用a来对样本集D进行划分,则会产生V个分支结点,其中第v个分支结点包含了D中所有在属性a上取值为
的样本,记为
。我们可根据式上式计算出
的信息熵,再考虑到不同的分支结点所包含的样本数不同,给分支结点赋予权重
,即样本数越多的分支结点的影响越大,于是可计算出用属性a对样本集D进行划分所获得的“信息增益”(information gain):
信息增益就是新划分结果的纯度和旧结果的差值。
一般而言,信息增益越大,则意味着使用属性a来进行划分所获得的“纯度提升”越大。因此,我们可用信息增益来进行决策树的划分属性选择,即在图4.2算法第8行选择属性
。
著名的ID3决策树学习算法就是以信息增益为准则来选择划分属性。
-
我们接下来以书上的案例演示一下决策树(信息增益)的构建过程:
- 计算根节点的信息熵:首先,计算整个数据集 D 的信息熵 Ent(D),也就是所有样本的信息熵。计算结果如下:
- 计算属性划分后的信息熵:对于每个属性 a,计算使用该属性划分后各个子集的信息熵。例如,对于属性“色泽”,它有3个可能的取值:青绿、乌黑、浅白。使用该属性对数据集 D 进行划分,得到3个子集
、
、
。然后分别计算这些子集的信息熵 Ent(D1)、Ent(D2)、Ent(D3)。
- 子集
包含编号为{1, 4, 6, 10, 13, 17}的6个样例,其中正例占
,反例占
;该分支结点的信息熵为
包含编号为{2, 3, 7, 8, 9, 15}的6个样例,其中正、反例分别占
,
;该分支结点的信息熵为
包含编号为{5, 11, 12, 14, 16}的5个样例,其中正、反例分别占
,
;该分支结点的信息熵为
- 然后计算出属性“色泽”的信息增益:
-
类似的,我们可计算出其他属性的信息增益:
Gain(D, 根蒂) = 0.143; Gain(D, 敲声) = 0.141;
Gain(D, 纹理) = 0.381; Gain(D, 脐部) = 0.289;
Gain(D, 触感) = 0.006. -
显然,属性“纹理”的信息增益最大,于是它被选为划分属性。图4.3给出了基于“纹理”对根结点进行划分的结果,各分支结点所包含的样例子集显示在结点中。
- 子集
- 对每个节点循环第二步。
以图4.3中第一个分支结点(“纹理=清晰”)为例,该结点包含的样例集合
中有编号为{1, 2, 3, 4, 5, 6, 8, 10, 15}的9个样例,可用属性集合为{色泽,根蒂,敲声,脐部,触感}。基于
计算出各属性的信息增益:
Gain(D^1, 色泽) = 0.043; Gain(D^1, 根蒂) = 0.458;
Gain(D^1, 敲声) = 0.331; Gain(D^1, 脐部) = 0.458;
Gain(D^1, 触感) = 0.458.“根蒂”、“脐部”、“触感”3个属性均取得了最大的信息增益,可任选其中之一作为划分属性。
-
类似的,对每个分支结点进行上述操作,最终得到的决策树如图4.4所示。
局限性:
- 偏向于选择取值较多的特征:信息增益倾向于选择取值较多的特征,因为这样的特征通常能将数据划分得更细,从而获得更高的信息增益。这可能导致选择对分类贡献不大的特征。
- 未考虑特征之间的相关性:信息增益只考虑单个特征对数据集的分类能力,而忽略了特征之间的相关性。
-
4.2.2 增益率
在上面的介绍中,我们有意忽略了表4.1中的“编号”这一列。若把“编号”也作为一个候选划分属性,则根据式(4.2)可计算出它的信息增益为0.998,远大于其他候选划分属性。这很容易理解:“编号”将产生17个分支,每个分支结点仅包含一个样本,这些分支结点的纯度已达最大。然而,这样的决策树显然不具有泛化能力,无法对新样本进行有效预测。
实际上,信息增益准则对可取值数目较多的属性有所偏好,为减少这种偏好可能带来的不利影响,我们将增益率定义为,其中
称为属性a的“固有值”(intrinsic value)。属性a的可能取值数目越多(即V越大),则IV(a)的值通常会越大。
增益率本质上是使用IV修正分支数量带来的增益,使决策树更关注属性带来的增益
例如,对表4.1的西瓜数据集2.0,有IV(触感) = 0.874 (V = 2),IV(色泽) = 1.580 (V = 3),IV(编号) = 4.088 (V = 17)。
需要注意的是,增益率准则对可取值数目较少的属性有所偏好。
因此,C4.5算法并不是直接选择增益率最大的候选划分属性,而是使用了一个启发式:先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的。
-
增益率的优点
- 减少对取值数量多的特征的偏好:信息增益倾向于选择取值数量多的特征,而增益率通过固有值对其进行归一化,从而更公平地评估特征的分类能力
- 防止过拟合:通过减少对复杂特征的偏好,增益率有助于构建更简洁、泛化能力更强的决策树。
-
4.2.3 基尼系数
CART决策树使用“基尼指数”(Gini index)来选择划分属性。采用与式(4.1)相同的符号,数据集D的纯度可用基尼值来度量:
直观来说,Gini(D)反映了从数据集D中随机抽取两个样本,其类别标记不一致的概率。因此,Gini(D)越小,则数据集D的纯度越高。属性a的基尼指数定义为
接下来,我们在候选属性集合A中,选择那个使得划分后基尼指数最小的属性作为最优划分属性,即。
-
基尼系数的优点
- 简单直观:基尼系数能够直观地反映数据的不平等程度
- 计算方便:基尼系数的计算相对简单,适用于大规模数据
基尼系数的局限性
- 无法反映具体分配情况:基尼系数只能反映总体的不平等程度,但无法指出具体哪些群体之间存在分配不公
- 对极端值敏感:基尼系数对极端值较为敏感,可能夸大或低估实际的不平等程度
-
-
4.3 剪枝
在决策树学习中,为了尽可能正确分类训练样本,结点划分过程将不断重复,有时会造成决策树分支过多,这时就可能因训练样本学得“太好”了,以致于把训练集自身的一些特点当作所有数据都具有的一般性质而导致过拟合。
剪枝(pruning)是决策树学习算法对付“过拟合”的主要手段。我们可通过主动去掉一些分支来降低过拟合的风险。
决策树剪枝的基本策略有“预剪枝”(pre-pruning)和“后剪枝”(post-pruning)。
- 预剪枝是指在决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点标记为叶结点;
- 后剪枝则是先从训练集生成一棵完整的决策树,然后自底向上地对非叶结点进行考察,若将该结点对应的子树替换为叶结点能带来决策树泛化性能提升,则将该子树替换为叶结点。
剪枝的基本原理:如果我们发现划分前后的指标涨了,说明划分是正确的,不需要剪枝;想法说明划分起到了反作用,需要剪枝
-
如何判断决策树泛化性能是否提升呢?我们可使用2.2节介绍的性能评估方法。本节假定采用留出法,即预留一部分数据用作“验证集”以进行性能评估。
例如对表4.1的西瓜数据集2.0,我们将其随机划分为两部分,如表4.2所示,编号为{1, 2, 3, 6, 7, 10, 14, 15, 16, 17}的样例组成训练集,编号为{4, 5, 8, 9, 11, 12, 13}的样例组成验证集。
-
4.3.1 预剪枝
基于信息增益准则,我们首先会选取属性“脐部”来对训练集进行划分,并产生3个分支。然而,是否应该进行这个划分呢?
预剪枝就是在划分的时候计算其指标,如果指标有增长,说明划分正确,继续划分;反之将直接终止划分。
我们利用预剪枝方法对划分前后的泛化性能进行估计。
- 在划分之前,所有样例集中在根结点。若不进行划分,该结点将被标记为训练样例数最多的类别,假设我们将这个叶结点标记为“好瓜”,则编号为{4, 5, 8}的样例被分类正确,另外4个样例分类错误,于是,验证集精度为
。
- 在用属性“脐部”划分之后,图4.6中的结点②、③、④分别包含编号为{1, 2, 3, 14}、{6, 7, 15, 17}、{10, 16}的训练样例,因此这3个结点分别被标记为叶结点“好瓜”、“好瓜”、“坏瓜”。此时,验证集中编号为{4, 5, 8, 11, 12}的样例被分类正确,验证集精度为
。精度得到了提升,于是,用“脐部”进行划分是正确的。
- 然后,决策树算法应该对结点②进行划分,基于信息增益准则将挑选出划分属性“色泽”。然而,在使用“色泽”划分后,编号为{5}的验证集样本分类结果会由正确转为错误,使得验证集精度下降为57.1%。于是,预剪枝策略将禁止结点②被划分。
- 对结点③,最优划分属性为“根蒂”,划分后验证集精度仍为71.4%。这个划分不能提升验证集精度,于是,预剪枝策略禁止结点③被划分。 对结点④,其所含训练样例已属于同一类,不再进行划分。
- 也就是说,图4.5的决策树并非最佳决策树,而基于预剪枝策略所生成的决策树的验证集精度为71.4%,如图4.6所示。
这是一棵仅有一层划分的决策树,亦称“决策树桩”(decision stump)。 对比图4.6和图4.5可看出,预剪枝使得决策树的很多分支都没有“展开”,这不仅降低了过拟合的风险,还显著减少了决策树的训练时间开销和测试时间开销。但另一方面,有些分支的当前划分虽不能提升泛化性能,甚至可能导致泛化性能暂时下降,但在其基础上进行的后续划分却有可能导致性能显著提高;预剪枝基于“贪心”本质禁止这些分支展开,给预剪枝决策树带来了欠拟合的风险。
贪心算法会根据某种贪心准则,从问题的初始状态出发,依次做出一系列的选择,每一步的选择都是基于当前状态的最优选择,而不会考虑后续步骤的复杂情况。
贪心算法并不总是能得到全局最优解。它的有效性取决于问题的性质和所采用的贪心准则是否适合该问题。在一些问题中,贪心算法能够快速找到最优解,但在另一些问题中,可能会得到次优解甚至错误的结果。
-
4.3.2 后剪枝
后剪枝先从训练集生成一棵完整决策树,然后再做剪枝操作。
例如基于表4.2的数据得到如图4.5所示的决策树,该决策树的验证集精度为42.9%。
- 后剪枝首先考察图4.5中的结点⑥。若将其分支剪除,则相当于把⑥替换为叶结点。替换后的叶结点包含编号为{7, 15}的训练样本,于是,该叶结点的类别标记为“好瓜”,此时决策树的验证集精度提高至57.1%。于是,后剪枝策略决定剪枝。
- 然后考察结点⑤,若将其子树替换为叶结点,则替换后的叶结点包含编号为{6, 7, 15}的训练样例,叶结点类别标记为“好瓜”,此时决策树验证集精度仍为57.1%。于是,可以不进行剪枝。
- 对结点②,若将其子树替换为叶结点,则替换后的叶结点包含编号为{1, 2, 3, 14}的训练样例,叶结点标记为“好瓜”。此时决策树的验证集精度提高至71.4%。于是,后剪枝策略决定剪枝。
- 对结点③和①,若将其子树替换为叶结点,则所得决策树的验证集精度分别为71.4%与42.9%,均未得到提高。于是它们被保留。
- 最终,基于后剪枝策略从表4.2数据所生成的决策树如图4.7所示,其验证集精度为71.4%。
对比图4.7和图4.6可看出,后剪枝决策树通常比预剪枝决策树保留了更多的分支。一般情形下,后剪枝决策树的欠拟合风险很小,泛化性能往往优于预剪枝决策树。但后剪枝过程是在生成完全决策树之后进行的,并且要自底向上地对树中的所有非叶结点进行逐一考察,因此其训练时间开销比未剪枝决策树和预剪枝决策树都要大得多。
-
-
4.4 连续与缺失值
4.4.1 连续值处理
到目前为止我们仅讨论了基于离散属性来生成决策树。现实学习任务中常会遇到连续属性,有必要讨论如何在决策树学习中使用连续属性。
由于连续属性的可取值数目不再有限,因此不能直接根据连续属性的可取值来对结点进行划分。我们可使用连续属性离散化技术解决这一问题。最简单的策略是采用二分法(bi-partition)对连续属性进行处理,这正是C4.5决策树算法中采用的机制。
给定样本集D和连续属性a,假定a在D上出现了n个不同的取值,将这些值从小到大进行排序,记为。基于划分点t可将D分为子集
和
,其中
包含那些在属性a上取值不大于t的样本,而
则包含那些在属性a上取值大于t的样本。
对连续属性a,我们可考察包含 n-1 个元素的候选划分点集合,即把区间
的中位点
作为候选划分点。
然后,我们就可像离散属性值一样来考察这些划分点,选取最优的划分点进行样本集合的划分。例如,可对信息增益稍加改造:
,其中 Gain(D, a, t) 是样本集 D 基于划分点 t 二分后的信息增益。于是,我们就可选择使 Gain(D, a, t) 最大化的划分点。
-
作为一个例子,我们在表 4.1 的西瓜数据集 2.0 上增加两个连续属性“密度”和“含糖率”,得到表 4.3 所示的西瓜数据集 3.0。
下面我们用这个数据集来生成一棵决策树。
- 对属性“密度”,在决策树学习开始时,根结点包含的17个训练样本在该属性上取值均不同。该属性的候选划分点集合包含16个候选值:T_{密度} = {0.244, 0.294, 0.351, 0.381, 0.420, 0.459, 0.518, 0.574, 0.600, 0.621, 0.636, 0.648, 0.661, 0.681, 0.708, 0.746}。可计算出属性“密度”的信息增益为0.262,其对应的划分点是0.381。
- 对属性“含糖率”,其候选划分点集合也包含16个候选值:T_{含糖率} = {0.049, 0.074, 0.095, 0.101, 0.126, 0.155, 0.179, 0.204, 0.213, 0.226, 0.250, 0.265, 0.292, 0.344, 0.373, 0.418}。类似的,可计算出其信息增益为0.349,其对应的划分点是0.126。
- 表4.3的数据上各属性的信息增益为
-
于是,“纹理”被选作根结点划分属性,此后结点划分过程递归进行,最终生成如图4.8所示的决策树。
需要注意的是,与离散属性不同,若当前结点划分属性为连续属性,该属性还可作为其后代结点的划分属性。
-
4.4.2 缺失值处理
现实任务中常会遇到不完整样本,即样本的某些属性值缺失。如果简单地放弃不完整样本,仅使用无缺失值的样本来进行学习,显然是对数据信息极大的浪费。
例如,表4.4是表4.1中的西瓜数据集2.0出现缺失值的版本,如果放弃不完整样本,则仅有编号{4, 7, 14, 16}的4个样本能被使用。显然,有必要考虑利用有缺失属性值的训练样例来进行学习。
我们需要解决两个问题:
- 如何在属性值缺失的情况下进行划分属性选择?
- 给定划分属性,若样本在该属性上的值缺失,如何对样本进行划分?
-
给定训练集D和属性a,令 表示D中在属性a上没有缺失值的样本子集。对问题(1),显然我们仅可根据
来判断属性a的优劣。假定属性a有V个可取值
,令
表示
中在属性a上取值为a^v的样本子集,
表示
中属于第k类(
)的样本子集,则显然有
,
。假定我们为每个样本x赋予一个权重
,并定义
直观地看,对属性a,ρ表示无缺失值样本所占的比例,表示无缺失值样本中第k类所占的比例,
则表示无缺失值样本中在属性a上取值
的样本所占的比例。显然,
。
基于上述定义,我们可将信息增益推广为
其中
该式通过只考虑无缺失值的样本,我们可以计算出在这些样本上的属性信息增益,然后根据无缺失值样本在整个数据集中的比例来调整这个增益值,从而得到一个更准确的信息增益估计。
-
对问题(2),若样本x在划分属性a上的取值已知,则将x划入与其取值对应的子结点,且样本权值在子结点中保持为。若样本x在划分属性a上的取值未知,则将x同时划入所有子结点,且样本权值在与属性值
对应的子结点中调整为
;直观地看,这就是让同一个样本以不同的概率划入到不同的子结点中去。
C4.5算法使用了上述解决方案。
-
下面我们以表4.4的数据集为例来生成一棵决策树。
- 在学习开始时,根结点包含样本集D中全部17个样本,各样本的权值均为1。
- 第一层以属性“色泽”为例
- 该属性上无缺失值的样例子集
包含编号为{2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17}的14个样例。计算这14个无缺失样例的信息熵,
的信息熵为
- 令
与
分别表示在属性“色泽”上取值为“青绿”“乌黑”以及“浅白”的样本子集,有
- 因此,样本子集
上属性“色泽”的信息增益为
- 于是,样本集 D 上属性“色泽”的信息增益为
- 类似地可计算出所有属性在 D 上的信息增益:
- “纹理”在所有属性中取得了最大的信息增益,被用于对根结点进行划分。划分结果是使编号为{1,2,3,4,5,6,15} 的样本进入“纹理=清晰”分支,编号为 {7,9,13,14,17} 的样本进入“纹理=稍糊”分支,而编号为 {11,12,16} 的样本进入“纹理=模糊”分支,且样本在各子结点中的权重保持为 1。需注意的是,编号为 {8} 的样本在属性“纹理”上出现了缺失值,因此它将同时进入三个分支中,但权重在三个子结点中分别调整为
、
和
,编号为 {10} 的样本有类似划分结果。
- 该属性上无缺失值的样例子集
- 使用类似的方法继续划分
最终划分结果如下:
-
-
4.5 多变量决策树
若我们把每个属性视为坐标空间中的一个坐标轴,则 d 个属性描述的样本就对应了 d 维空间中的一个数据点;对样本分类则意味着在这个坐标空间中寻找不同类样本之间的分类边界。决策树所形成的分类边界有一个明显的特点:轴平行(axis-parallel),即它的分类边界由若干个与坐标轴平行的分段组成。
以表 4.5 中的西瓜数据为例,将它作为训练集可学得图 4.10 所示的决策树。
这棵树所对应的分类边界如图 4.11 所示。显然,分类边界的每一段都是与坐标轴平行的。这样的分类边界使得学习结果有较好的可解释性,因为每一段划分都直接对应了某个属性取值。但在学习任务的真实分类边界比较复杂时,必须使用很多段划分才能获得较好的近似。
由于属性选择不正确,图 4.12 的决策树进行了多次划分;此时的决策树会相当复杂,由于要进行大量的属性测试,预测时间开销会很大。
然而若此时能使用斜的划分边界,如图 4.12 中红色线段所示,则决策树模型将大为简化。
-
“多变量决策树”(multivariate decision tree)就是能实现这样的“斜划分”甚至更复杂划分的决策树。以实现斜划分的多变量决策树为例,在此类决策树中,非叶结点不再是仅对某个属性,而是对属性的线性组合进行测试;换言之,每个非叶结点是一个形如 的线性分类器,其中
是属性
的权重,
和 t 可在该结点所含的样本集和属性集上学得。
于是,与传统的“单变量决策树”(univariate decision tree)不同,在多变量决策树的学习过程中,不是为每个非叶结点寻找一个最优划分属性,而是试图建立一个合适的线性分类器。
对于图4.12,普通决策树需要进行9次决策,而多变量决策树仅需3次即可。而对西瓜数据 ,我们可学得图 4.13 这样的多变量决策树,其分类边界如图 4.14 所示。可见多变量决策树可大幅减少决策树的决策次数。
-
-
亲爱的朋友们,非常感谢您抽出宝贵的时间阅读我的博客。在这里,我分享了一些自己学习的点滴。如果您在阅读过程中有所收获,或者觉得这些内容引起了您的共鸣,希望能得到您的一次点赞,这对我来说是莫大的鼓励。同时,如果您对我的分享感兴趣,不妨关注一下我的博客,这样就能及时收到我的更新通知,不错过更多有趣的内容。另外,如果这些文章对您有帮助,也可以收藏起来,方便日后查阅。您的支持是我不断前行的动力,再次感谢您的陪伴!