当前位置: 首页 > news >正文

深入浅出决策树

在机器学习的广阔领域中,决策树是一种既直观又强大的模型。它就像我们日常生活中的决策过程,通过一步步的判断,最终得出结论。无论是分类任务还是回归任务,决策树都能胜任。今天,我们就来深入探讨决策树的奥秘,从基本概念到实际构建,带你全面掌握这一经典模型。

一、决策树的基本概念

决策树,顾名思义,是一种以树状结构进行决策的模型。它从根节点开始,通过对特征的判断,沿着不同的分支一步步走到叶子节点,而叶子节点就是最终的决策结果。在这个过程中,所有的数据最终都会落到叶子节点。

树的组成部分清晰明了:

根节点:这是决策树的第一个选择点,就像决策过程的起点。

非叶子节点与分支:它们构成了决策树的中间过程,通过对不同特征的判断,引导数据走向不同的方向。

叶子节点:这是决策树的最终决策结果,数据经过一系列判断后最终停留在这里。

二、决策树的训练与测试

决策树的使用过程分为训练和测试两个阶段。

训练阶段:从给定的训练集中构造出一棵树。这一阶段的关键在于从根节点开始选择合适的特征,并确定如何进行特征切分。

测试阶段:当决策树构造完成后,测试就变得很简单了。只需要根据构造好的树模型,将测试数据从上到下走一遍,就能得到决策结果。

显然,决策树的难点在于如何构造出一棵性能良好的树,这涉及到特征的选择和切分等关键问题。

三、特征切分的衡量标准:熵与信息增益

在构造决策树时,根节点该选择哪个特征,后续节点又该如何选择,这是我们必须解决的问题。我们的目标是让每个节点都能更好地切分数据,提高分类效果。这就需要一种衡量标准,来计算通过不同特征进行分支选择后的分类情况,找出最优的特征作为当前节点。

(一)熵

熵是表示随机变量不确定性的度量,其公式为H(X)=−∑pi×logpi,其中i=1,2,...,n

熵具有这样的特性:不确定性越大,得到的熵值也就越大。

当p=0或p=1时,H(p)=0,此时随机变量完全没有不确定性;

当p=0.5时,H(p)=1,此时随机变量的不确定性最大。

举个例子,有 A 集合[1,1,1,1,1,1,1,1,2,2]和 B 集合[1,2,3,4,5,6,7,8,9,1]。A 集合中主要是 1,不确定性较低,熵值较小;B 集合中元素种类繁多,不确定性高,熵值较大。在分类任务中,我们希望通过节点分支后数据类别的熵值变小,因为这意味着分类后的结果更专一,同类数据能更好地聚集在一起。

(二)信息增益

信息增益表示特征 X 使得类 Y 的不确定性减少的程度。它反映了分类后的专一性,我们希望通过特征切分后信息增益尽可能大,这样分类效果更好。

熵越小越好,信息增益越大越好。

http://www.dtcms.com/a/337793.html

相关文章:

  • 决策树总结
  • 视觉语言导航(9)——位置编码 VLNBERT与HAMT 记忆模块 3.3后半段
  • 如何简单实现排行榜功能
  • 【数模国奖冲刺】备赛过程中的常见问题
  • Tomcat Engine 原理深度解析
  • python的电影院座位管理可视化数据分析系统
  • 宋红康 JVM 笔记 Day05|运行时数据区内部结构、JVM中的线程说明、程序计数器
  • linux系统查看ip命令
  • 【自动化测试】Selenium详解-WebUI自动化测试
  • 【智慧工地源码】智慧工地云平台系统,涵盖安全、质量、环境、人员和设备五大管理模块,实现实时监控、智能预警和数据分析。
  • 《清华级防护,了解一下?》
  • 局域网视频软件BeeWorks,内网顺畅沟通
  • FPGA学习笔记——IIC协议简介
  • ​​​​​​​专精特新企业数据(附参考文献, 2013-2023)
  • [openvela] Hello World :从零开始的完整实践与问题复盘
  • linux-高级IO(中)
  • Python数据容器(列表,元组,字典) 从入门到精通
  • 基于Python的就业信息推荐系统 Python+Django+Vue.js
  • 封装,继承,多态
  • 【CV 目标检测】Fast RCNN模型③——模型训练/预测
  • day44_2025-08-18
  • iOS 性能监控全流程实践,从开发到上线的多工具组合方案
  • RabbitMQ ,消息进入死信交换机
  • QT 字节大小端转序方法
  • Qt5基础控件详细讲解
  • VSCode REST Client 使用总结
  • 【力扣-轮转数组 Java / Python】
  • leetcode415. 字符串相加
  • 【论文阅读】-《HopSkipJumpAttack: A Query-Efficient Decision-Based Attack》
  • Jenkins全链路教程——Jenkins调用Maven构建项目