共计 2865 个字符,预计需要花费 8 分钟才能阅读完成。
数新网络 - 让每个人享受数据的价值
官网现已全新降级 欢送拜访!
决策树办法在分类、预测、规定提取等畛域有着广泛应用。20 世纪 70 年代前期和 80 年代初期,机器学习研究者 J.Ross Quinlan 提出了 ID3 算法当前,决策树在机器学习、数据挖掘畛域失去极大的倒退。Quinlan 起初又提出了 C4.5,成为新的监督学习算法。1984 年,几位统计学家提出了 CART 分类算法。ID3 和 CART 算法简直同时被提出,但都是采纳相似的办法从训练样本中学习决策树。——《Python 数据分析与开掘实战》
01 介绍
决策树(Decision Tree)是一种罕用的机器学习算法,用于解决分类和回归问题。它是一种基于树状构造进行决策的模型,通过一系列的断定来对数据进行分类或预测。
决策树的构建过程就是依据数据特色逐渐进行划分,直到达到预约的终止条件。它是一种树形构造,其中每个外部节点代表一个属性上的判断,每个分支代表一个判断后果的输入,每个叶节点代表一种分类后果。决策树是一种非常罕用的分类办法,属于有监管学习。
监管学习就是给出一堆样本,每个样本都有一组属性和一个分类后果,也就是分类后果已知,那么通过学习这些样本失去一个决策树,这个决策树可能对新的数据给出正确的分类。
02 案例剖析
当谈到机器学习中的决策树时,咱们能够思考一个简略的二分类问题,例如预测一个人是否会购买某个产品,基于他们的年龄和收入水平。以下是一个示例:假如咱们有一个数据集,其中蕴含了一些人的信息,以及他们是否购买了某个产品。数据集可能如下所示:
咱们能够应用决策树来预测一个新的个体是否会购买产品。决策树的构建过程如下:
抉择一个特色来宰割数据。咱们能够抉择年龄或支出作为第一个宰割特色。依据选定的特色将数据集分成不同的子集。对于每个子集,反复步骤 1 和 2,抉择一个最佳的特色来进一步宰割数据。反复这个过程,直到达到某个进行条件,例如树的深度达到肯定的限度或节点中的样本数不足以再次宰割。
最终构建的决策树可能如下所示:
在这个决策树中,每个节点都代表一个特色及其阈值,每个分支代表一个决策。例如,根节点的“年龄 ≤ 30?”是一个决策,如果满足这个条件,就沿着左分支走,否则沿着右分支走。最终,咱们能够依据这个决策树来预测一个新个体是否会购买产品。
03 分类
比拟罕用的决策树有 ID3,C4.5 和 CART。上面介绍具体原理思维。
3-1 ID3 算法
是一种经典的决策树算法,用于解决分类问题。它由 Ross Quinlan 于 1986 年提出,是决策树算法的先驱之一。ID3 的次要思维是通过递归地抉择最佳的特色进行划分,以构建一个树状构造,将数据集划分成不同的子集,最终达到分类的指标。
以下是 ID3 算法的次要原理步骤:
(1)特征选择:在每个节点上,抉择一个最佳的特色来进行数据集的划分。ID3 应用信息增益(Information Gain)作为特征选择的根据。信息增益是掂量某个特色划分对于数据集纯度晋升的水平,抉择可能带来最大信息增益的特色。
(2)划分数据:应用选定的特色和其取值将数据集划分成多个子集,每个子集对应一个分支。这些子集将作为树的下一层节点。
(3)递归构建:对于每个子集,如果子集内的样本不属于同一类别,则持续递归地进行特征选择和划分,直到满足某个终止条件(例如,子集内的样本都属于同一类别,或者特色曾经用完)。
(4)生成决策树:最终,ID3 通过递归地进行特征选择、划分和构建,生成一棵残缺的决策树,其中每个叶节点示意一个类别标签。
ID3 的次要长处是简略易懂、容易实现,并且可能解决离散特色。然而,它也存在一些问题,如容易过拟合(适度学习训练数据)。
3-2 C4.5 算法
ID3 算法在决策树构建过程中存在一个问题,即它偏向于将数据集划分得十分粗疏,以达到训练数据零错误率的指标。然而,这种粗疏的宰割可能在训练数据上体现得很好,但对新的未见过的数据却无奈泛化,导致分错率回升,这就是适度学习的景象。
这种适度学习景象能够用一个例子来阐明:假如咱们以某个特定属性的阈值为规范,将数据集分成两组,但在其中一组中有 1 个样本分类谬误。而后,咱们进一步微调阈值,将其中的一个样本划分到另一组,这样训练数据的分类错误率变为 0。然而,这样的微调可能只是对以后数据集无效,对于新数据却无奈产生雷同的成果,因为新数据可能与训练数据不同。这导致了决策树在训练数据上体现良好,但在新数据上体现蹩脚。
为了解决这个问题,C4.5 算法对 ID3 进行了改良。C4.5 引入了信息增益率的概念,这是一个优化项,它将信息增益除以宰割的代价,以升高宰割过于粗疏的状况。信息增益率思考了宰割的成果与宰割代价之间的均衡,从而防止了适度学习的问题。因而,C4.5 在进行特征选择时不仅思考了信息增益,还思考了宰割的代价,以确保决策树可能更好地泛化到新的数据。
3-3 CART 算法
CART(Classification and Regression Trees,分类与回归树)是一种罕用的决策树算法,它能够用于解决分类和回归问题。CART 算法的次要思维是通过递归地将数据集划分为更小的子集,而后在每个子集上构建一个简略的决策树,从而达到分类或回归的指标。
当应用 CART(分类与回归树)进行回归工作时,每个节点都代表数据的一个子集,而每次决裂都旨在找到一个特色和阈值,将数据分成更具相似性的子集。现实状况下,如果每个叶节点内的数据都属于同一个类别,那么树的构建就能够进行,达到最佳的分类。然而,在理论利用中,数据可能不够清晰地宰割成不同的类别,或者要达到污浊的宰割须要屡次决裂,导致构建树的工夫变得很长。
为了解决这个问题,CART 算法引入了回归解析的概念。这意味着在树的构建过程中,不仅仅思考了数据的纯度,还思考了叶节点内数据的散布状况。具体而言,CART 会计算每个叶节点内数据的均值和方差。如果一个叶节点内数据的方差小于某个阈值,意味着这个叶节点内的数据相对来说比拟类似,树的宰割可能曾经足够好了。
因而,CART 能够决定进行在这个节点持续宰割,从而达到升高计算成本的目标。CART 和 ID3 一样,也存在适度拟合问题。能够对特地长的树进行剪枝解决来解决该问题。
04 穿插验证法(Cross- Validation)
在决策树训练的时候,个别会采取穿插验证(Cross-Validation)法。它是一种罕用于评估和抉择机器学习模型性能的技术。它的次要目标是在无限的数据上尽可能精确地预计模型在未见数据上的性能,从而防止过拟合或抉择不适宜的模型。其执行步骤如下:
a. 将数据分成 k 个相等的子集(折叠)。b. 在第 i 个折叠上,将第 i 个折叠作为测试集,其余 k-1 个折叠作为训练集。c. 训练模型:应用训练集的数据来训练机器学习模型。d. 测试模型:应用测试集的数据来评估模型的性能,计算性能指标(如准确率、准确率、召回率等)。e. 反复步骤 b-d,直到每个折叠都作为测试集一次。
穿插验证能够帮忙精确地预计模型的性能,从而反对更好的模型抉择和超参数调整,以取得更好的泛化性能。