Fork me on GitHub

人工智能之机器学习基础——决策树(Decision Tree)

决策树是一种用于分类和回归的非参数模型,能够通过一系列的条件判断(分裂规则)将输入数据划分为子区域,从而完成预测任务。

1. 决策树的基本结构

决策树由以下三部分组成:

  1. 根节点(Root Node)
    • 表示整个数据集,最初没有任何划分。
  2. 内部节点(Internal Node)
    • 表示一个特定的特征测试条件(例如:x1>5x_1 > 5x1>5)。
    • 根据测试结果将数据划分为多个子节点。
  3. 叶节点(Leaf Node)
    • 表示最终的分类或回归输出。
    • 分类任务中,叶节点存储类别标签;
    • 回归任务中,叶节点存储预测的值(如平均值)。

决策路径

  • 从根节点到叶节点的一条路径,代表了一系列的决策规则。

 

3. 决策树的优缺点

3.1 优点

  1. 简单直观
    • 决策树易于理解和解释,适合可视化。
  2. 无需特征缩放
    • 对数据的缩放或标准化不敏感。
  3. 处理非线性关系
    • 决策树能够自动划分非线性边界。
  4. 多用途
    • 同时适用于分类和回归任务。

3.2 缺点

  1. 过拟合
    • 决策树容易生成过于复杂的树,从而在训练集上表现很好,但在测试集上泛化能力较差。
  2. 不稳定性
    • 数据的微小变化可能导致树结构的显著变化。
  3. 倾向于划分较多的特征
    • 决策树可能偏好取值范围多的特征。

4. 决策树的正则化方法

为了防止过拟合,可以对决策树进行正则化:

  1. 最大深度(max_depth)
    • 限制树的深度,防止树过于复杂。
  2. 最小样本分割(min_samples_split)
    • 控制每次分裂所需的最小样本数。
  3. 最小样本叶节点(min_samples_leaf)
    • 控制叶节点中的最小样本数。
  4. 剪枝(Pruning)
    • 后剪枝:先生成完全的树,再对其进行剪枝;
    • 预剪枝:在构建过程中提前停止分裂。

5. 决策树的扩展

5.1 随机森林(Random Forest)

  • 随机森林由多个决策树组成,是一种基于集成学习的模型。
  • 每棵树在训练时随机选择一部分特征,最终通过投票(分类)或平均(回归)得到结果。

5.2 梯度提升树(Gradient Boosted Tree, GBT)

  • 使用多个决策树,按梯度提升的方式逐步减小模型误差。

5.3 极端随机树(Extra Tree)

  • 在决策树的基础上引入更多随机性,例如随机选择分裂点。

6. 决策树分类任务示例

问题描述

我们有一个小型数据集,目标是预测一个人是否适合参加户外运动("是" 或 "否"),特征包括天气温度风速。数据如下:

天气温度风速是否适合运动
晴天
晴天
多云
雨天 温暖
雨天
雨天
多云
晴天 温暖
晴天
雨天 温暖

目标是构建一棵决策树来预测“是否适合运动”。

 

 

 

 

 




        

posted @   z_s_s  阅读(258)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示