机器学习(二十五):决策树算法以及决策树和神经网络的对比

一、决策树集合

单一决策树会对训练数据的变化很敏感。例子:输入十个数据,判断是否是猫。只替换其中一个数据,信息增益最高的分裂特征就发生了改变,决策树就发生了变化。

使用决策树集合可以使算法更加健壮。例子:使用三棵决策树,输入新数据预测是否是猫,然后根据三颗决策树的结果投票决定预测结果。

二、决策树算法

2.1 替换采样

替换采样:从训练数据(数量为M)中随机抽取一个记录下来,把这个数据再放回去,再进行随机抽取,直到采样数量达到M

例子:假设袋子里有四颗不同颜色的积木,替换采样方法:

  • 从袋子里随机取出一个积木(绿色)
  • 然后把该积木放回袋子里,再次随机取出一个积木(黄色)
  • 然后积木放回袋子里,再次随机取出一个积木(蓝色)
  • 然后积木放回袋子里,再次随机取出一个积木(蓝色),此时采样数量一共是4,停止采样。

2.2 袋状决策树

步骤:

  1. 通过对训练集进行有放回的替换采样,生成多个随机训练集。例如训练集一共有m个数据,通过替换采样抽取m个数据组成一个随机训练集,重复B次,生成B个随机训练集。
  2. 在每个随机训练集上训练一颗决策树,一共训练出B棵决策树。
  3. 最终的预测结果通过这B棵决策树的预测结果进行平均或投票来确定

(B一般取一百左右,B如果太大了,就会导致显著减缓计算减缓,但不能显著提高整体的算法性能)

袋状决策树的核心思想是:通过减少模型的方差来提高模型的泛化能力

2.3 随机森林算法

即使有替换采样,生成多个随机训练集,但是通过这些随机训练集训练出的不同模型,有时依旧会存在不同模型在根节点上使用相同的特征进行分裂。因此可以在每个节点分割时,随机选择部分特征,只从这部分特征中选择信息增益最大的特征进行分裂。

步骤

  1. 对原始数据集进行有放回的随机抽样,生成多个随机训练集
  2. 在每个随机训练集上训练一棵决策树。在每个节点分割时,随机选择部分特征进行考虑。例如一共n个特征,随机选取k个特征(k<n,可如 ),从这k个特征中选取信息增益最大的特征进行分裂。
  3. 对所有决策树的预测结果进行平均(回归任务)或投票(分类任务)以得到最终预测结果

随机选取部分特征训练决策树的优点:

  • 减少各决策树之间的相似性,形成的随机森林模型泛化能力更强
  • 提高计算效率:选择少部分特征可以减少计算复杂度,加快模型的训练速度
  • 减轻过拟合:较少的特征值帮助决策树更具随机性

随机森林算法优点:

  • 随机采样:算法对数据进行了大量的小修改,训练集的任何微小变化不会对算法整体有太大影响,提高模型稳定性。
  • 随机特征:不仅加快了训练速度,‌减少了计算开销,‌而且通过增加模型的随机性,‌使得模型对于未见过或未见特征的数据有更好的泛化能力

2.4 XGBoost算法

与 Bagging 不同,Boosting 是一种串行过程,每个基模型在训练时都会关注前一个模型中被错误分类的样本,即每次替换取样时,会有更高概率去选取之前被错误分类的数据,从而不断提高整体模型的准确性

XGBoost算法特点:

  • boosted树拥有很多开源实现
  • 非常快速有效
  • 很好的选择默认分裂标准和停止分裂标准
  • 内置正则化
  • 高竞争算法

XGBoost算法的代码实现:

分类算法:

回归算法:

三、决策树和神经网络对比

3.1 决策树和树集合特点

  • 很好地处理结构化数据(表格数据)
  • 不推荐处理费结构化数据,例如图片、音频和文本
  • 训练快速
  • 小决策树可能是人类可解释的,可以打印出决策树,理解它是如何做决定的

3.2 神经网络特点

  • 很好地处理所有类型数据,包括结构化数据和非结构化数据
  • 训练比决策树慢
  • 可以使用迁移学习
  • 如果正在构建一个由多个机器学习模型协同工作的系统,把多个神经网络串在p一起训练可能比训练多个决策树容易

学习来源:吴恩达机器学习,17.1-17.5节

相关推荐
刘大大Leo4 小时前
GPT-5.3-Codex 炸了:第一个「自己造自己」的 AI 编程模型,到底意味着什么?
人工智能·gpt
小镇敲码人4 小时前
剖析CANN框架中Samples仓库:从示例到实战的AI开发指南
c++·人工智能·python·华为·acl·cann
摘星编程4 小时前
CANN ops-nn Pooling算子解读:CNN模型下采样与特征提取的核心
人工智能·神经网络·cnn
程序员清洒5 小时前
CANN模型安全:从对抗防御到隐私保护的全栈安全实战
人工智能·深度学习·安全
island13145 小时前
CANN ops-nn 算子库深度解析:神经网络计算引擎的底层架构、硬件映射与融合优化机制
人工智能·神经网络·架构
小白|5 小时前
CANN与实时音视频AI:构建低延迟智能通信系统的全栈实践
人工智能·实时音视频
Kiyra5 小时前
作为后端开发你不得不知的 AI 知识——Prompt(提示词)
人工智能·prompt
艾莉丝努力练剑5 小时前
实时视频流处理:利用ops-cv构建高性能CV应用
人工智能·cann
程序猿追5 小时前
深度解析CANN ops-nn仓库 神经网络算子的性能优化与实践
人工智能·神经网络·性能优化
User_芊芊君子5 小时前
CANN_PTO_ISA虚拟指令集全解析打造跨平台高性能计算的抽象层
人工智能·深度学习·神经网络