通过前面的一些练习,我们已经学习了支持向量机、 回归、 鸢尾花模型 、卷积、 知识图谱、 生成式对抗网络、 K近邻、 等AI算法的基本概念,熟悉了一些常用的AI库,并且使用PYTHON大法进行了一些实战练习。接下来,我们向更深一层的概念进军啦!今天我们来学习的是:决策树。
决策树(Decision Tree) 是一种常用的监督学习算法,用于分类和回归问题。它通过一系列的决策规则将数据集划分成不同的类别或数值预测。决策树模型的主要特点是其结构类似于树形图,每个节点表示对特征的测试,每条分支代表测试结果,而叶节点则是最终的预测结果。
以下视图生动展示了什么叫做决策树:

看起来决策树就是一系列 if -else ?
if 今天下雨:
去公园 = "不去"
else:
if 今天温度 > 30:
去公园 = "不去"
else:
去公园 = "去"
不不不,没有这么简单,虽然基本的逻辑是这样。
决策树的工作原理确实可以理解为一系列的 if-else 语句,但是它的优势在于 自动选择最佳判断条件 和 高效的决策过程。
决策树与 if-else 的区别:
-
自动化选择条件:在传统的
if-else代码中,我们通常需要手动编写每个条件。但在决策树中,算法会根据数据自动选择最能区分不同样本的条件(特征)。例如,算法会选择“温度”还是“湿度”作为条件,取决于哪个特征对预测更有效。 -
树结构:决策树不仅是一个简单的条件判断,它有很多层次,每个层次的
if-else语句都代表不同的决策。这样,决策树通过递归方式逐步做出更细致的判断,直到最后给出结果。 -
可解释性和透明性:决策树结构简单,易于理解,可以清晰地显示每个判断过程。你可以通过查看树的结构,了解模型是如何做出决策的。
理解了吧? 现在我们继续我们的决策树!
一、决策树原理
(1)决策树的基本构建原理:
-
根节点:树的最顶部节点,表示整个数据集。通过选择一个最优的特征来将数据集划分为两个或多个子集。
-
内部节点:每个内部节点表示根据某个特征做出的决策。例如,特征值是否大于某个阈值。
-
叶节点:树的末端节点,表示分类标签或回归预测值。
(2)决策树的工作原理:

决策树的构建基于一个递归的过程,不断地选择特征来划分数据。具体步骤如下:
-
选择最优特征:在每个节点,选择一个特征,使得该特征能够最有效地将数据集划分成不同的子集。选择标准一般基于以下几个准则:
- 信息增益(用于ID3算法):衡量特征对数据集的划分效果,信息增益越大,说明该特征越好。
- 基尼指数(用于CART算法):度量数据集的不纯度,基尼指数越小,表示数据集越纯。
- 卡方检验:用于衡量特征对类别的相关性,通常用于分类问题。
-
递归划分:一旦选择了一个特征,就根据特征的不同值将数据集划分成多个子集,并递归地对每个子集进行相同的操作,直到满足停止条件(例如,节点中样本已经完全属于同一类,或者达到了预设的树深度等)。
-
停止条件:
- 所有样本都属于同一类。
- 没有更多的特征可以用来划分数据。
- 达到最大树深度。
- 每个节点的样本数少于预设的最小样本数。
(3)优点:
- 易于理解和解释:决策树可以生成直观的树状图,容易理解和可解释,是一种透明的模型。
- 不需要特征缩放:决策树不受特征的尺度影响,不需要像某些算法那样对数据进行标准化或归一化。
- 处理非线性关系:决策树能够有效地处理非线性数据,能够学习到特征之间复杂的关系。
- 可以处理分类和回归任务:决策树不仅可以用于分类问题,也可以用于回归问题。
(4)缺点:
- 容易过拟合:决策树可能会非常复杂,容易在训练数据上过拟合,尤其是树的深度较大时。
- 不稳定:小的变化可能会导致决策树结构发生很大变化,因此对数据噪声较为敏感。
- 偏向于选择取值较多的特征:某些决策树算法(如ID3)可能会偏向于选择取值较多的特征,从而导致不理想的树结构。
(5)剪枝(Pruning):
为了解决过拟合问题,可以对决策树进行剪枝。剪枝是在树构建完成后,通过去除一些不重要的分支来简化树的结构。剪枝可以分为:
- 前剪枝:在树构建过程中,就停止某些不重要的分裂。
- 后剪枝:在树构建完成后,通过评估每个分支的效用来决定是否剪掉。
(6)决策树的变种:
- 随机森林(Random Forest):一种集成学习方法,通过构建多个决策树并结合它们的预测结果来提高模型的稳定性和准确性。
- 梯度提升树(Gradient

最低0.47元/天 解锁文章
770

被折叠的 条评论
为什么被折叠?



