首页/知天下事/正文
决策树算法详解:从原理到应用,掌握机器学习中的决策树分类与回归

 2025年04月07日  阅读 17

摘要:今天给大家继续介绍决策树算法。决策树本身是一种机器学习算法,它非常简单且直观。这种算法可用于做分类或回归任务。它就如同我们平常做决定时的过程一样,会逐步排除可能的选项,最终得出结论。一个典型的决策树的决策过程如下图:从上图可以看到一个树的结构包括:叶节点...

今天给大家继续介绍决策树算法。决策树本身是一种机器学习算法,它非常简单且直观。这种算法可用于做分类或回归任务。它就如同我们平常做决定时的过程一样,会逐步排除可能的选项,最终得出结论。

一个典型的决策树的决策过程如下图:

从上图可以看到一个树的结构包括:

叶节点:代表最终的决策结果,叶节点不会有分支出现。

可以看出决策树至少具备两个优点。其一为直观易懂,决策树的结构宛如一棵树,每个节点都代表着一个属性测试,每条边则代表着一个测试结果,而叶子节点代表着最终的分类结果。这种结构与人类的思维方式极为契合,能让我们轻松理解模型做出决策的过程。二是可解释性强:通过对决策树的观察,我们可以明确地看到那些对分类结果产生最大影响的特征,以此帮助我们更好地去理解数据。

理解决策树

决策树包含一连串的节点,所有的特征属性都能够被用于划分分支。在这种情况下,至少有两个问题需要搞清楚:一是要选择哪些特征作为节点;二是如何对相应的特征进行划分。

在选择哪个特征作为节点时,有一个原则,即先用对模型贡献最大的特征来划分节点。评估对模型贡献的标准有很多。

第一个熵值:此熵值用于度量数据的不纯度,我们只需记住熵值越大,数据就越不纯即可。按照熵值的标准,我们期望通过节点后形成的分支数据越纯越好,这也就意味着熵值越小越好。

第二个信息增益 Gain 为:数据划分前的熵值与通过节点划分后的平均熵值之差。前面提到熵值越小越好,所以此差值应越大越好,即信息增益越大越好。

第三个的基尼纯度Gini :

可依据以上三个标准来确定选用哪个特征以及特征使用的先后次序,其具体标准总结如下:

r机器学习_机器学习周志华pdf_机器学习与数据挖掘

不同的模型贡献评估标准形成了不同的算法。例如,ID3 算法是以信息增益作为贡献标准,会选择信息增益最大的属性作为划分属性。C4.5 算法使用信息增益率。CART 算法使用基尼指数,且采用基尼指数作为划分属性的选择标准。

那么决策树的整个划分过程又是怎么样的呢?

我们来看个例子:想象一下,我们要依据天气情况来决定是否去打篮球。我们能够用决策树来展现这个决策的过程,具体步骤如下:

第一步是收集数据。首先,我们收集了一些历史天气方面的数据,同时也收集了是否打篮球的相关信息,这些信息包括:

第二步选择根节点,假设我们是用ID3算法:

第三步划分数据集

第四步继续划分子集

就这么一个思考过程决策树就出来了,决策树也就相应出来了:

所以一个常规的树的生成总结起来就是下面四步

计算各个属性的信息增益,接着计算信息增益率或者基尼指数。在这些计算结果中,挑选出增益最大的那个属性,将其作为划分属性。依据该属性所具有的不同取值情况,把数据集划分成多个不同的子集。针对每一个子集,再次重复上述的过程。一直持续进行这个过程,直到满足预先设定的停止条件为止。

决策树的剪枝

大家可以思考一下,按照上面决策树的生成流程持续进行划分。一直划分下去的话,总是能够达到非常精确的程度,但这样就会出现过拟合问题。为了避免过拟合,一般需要对决策树实施剪枝操作。剪枝的方法主要有预剪枝和后剪枝这两种。

决策树实操

我们依旧使用 iris 数据集来进行演示。之前写的那篇讲朴素贝叶斯的文章也是用的这个数据集。大家可以将两者进行对比,看看结果。以某一变量作为因变量,把其余变量当作自变量,构建决策树的代码如下:

plot()

r机器学习_机器学习周志华pdf_机器学习与数据挖掘

运行代码得到决策树如图:

训练好的模型在验证集中的表现如下:

针对连续特征的回归树

刚刚讲的决策树主要是针对分类结局的。决策树还能够用于连续结局,这种用于连续结局的决策树被叫做回归树。

我现在拥有一个数据集,其结局为年薪(这是一个连续变量)。该数据集中有两个预测变量,一个是工作年限,另一个是工作经验。通过这些数据能够形成一个如下图所示的决策树。

对于一个工作年限是 8 年且工作经验为 10 的个体而言,模型预测出他的年薪结果是 577.6

上面的过程存在两个问题,其一为特征分割的条件标准;其二为叶节点的值的来源。

选择最佳的划分特征以及划分点:针对每个特征,逐一遍历所有可能的划分点,接着计算划分后的子节点的均方误差(或者其他指标),然后挑选出能让均方误差达到最小的特征以及划分点,作为特征以及对应特征的划分点,回归树的叶节点所输出的是该节点所包含的所有训练样本目标值的平均值或者中位数。

看一个回归树的例子,我现在有数据如下:

我想要利用数据集中的特征去对 medv(房价中位数)进行预测,要做一个回归树,以下是相关代码:

fit

版权声明:本文为 “博览广文网” 原创文章,转载请附上原文出处链接及本声明;

原文链接:http://wen.bjhwtx.com/post/17263.html

标签:

博览广文网

博览广文网为所有文学爱好者、新闻爱好者、关注生活多方面内容的观众朋友提供多方位的内容呈现、提升阅读空间、填充碎片时间,开阔读者的视野、增长见识、了解民生、一个让您不出户尽知天下事的网站平台!
热门标签
关于我们
广文舒阅网—让天下读者有家可归!这里汇聚了各类优质文化信息,无论是全球热点、历史故事,还是实用百科、趣味探索,您都能轻松获取。我们希望用阅读点亮您的世界,让每一次浏览都充满收获和乐趣。
导航栏A标题
广文舒阅网
扫码关注
联系方式
全国服务热线:0755-88186625
Q Q:8705332
Email:admin@lanyu.com
地址:深圳市福田区海雅缤纷国际大厦5层501
Copyright 深圳市蓝宇科技有限公司 版权所有 备案号:京ICP备20013102号-1