博客
关于我
西瓜书学习笔记——决策树
阅读量:569 次
发布时间:2019-03-09

本文共 1006 字,大约阅读时间需要 3 分钟。

决策树学习基础

决策树结构

决策树是一种用于分类和回归分析的机器学习模型,其结构由三个主要组成部分定义:

  • 根节点:代表样本全集。
  • 内部节点:通过特征(属性)测试将样本分成子集。
  • 叶节点:表示分类或预测结果。
  • 决策树学习目标

    决策树的核心目标是生成一棵具有强泛化能力的树木,即能够有效预测未见过的新样本。为实现这一目标,需要遵循以下步骤。

    划分节点

    在决策树算法中,有三种情况会触发返回:

  • 样本全属于同一类别,无需划分。
  • 当前属性集为空,或所有样本在所有属性上取值相同,无法划分。
  • 当前结点包含的样本集合为空,不能划分。
  • 在第二种情况下,叶结点可设为样本中最多类别的类别;在第三种情况下,叶结点设为父结点中样本最多的类别。

    信息熵

    信息熵是衡量数据纯度的重要指标,定义如下:

    [ E_n(D) = -\sum_{k=1}^{|y|} p_k \log_2 p_k ]

    其中,( p_k ) 是数据集中第k类样本所占比例。

    信息增益

    信息增益衡量特征划分带来的纯度提升,公式为:

    [ G_lain(D, a) = E_n(D) - \sum_{v=1}^V \frac{|D^v|}{|D|} E_n(D_v) ]

    其中,( V ) 是特征的可能取值数。

    增益率

    为了减少对可取值数较多属性的偏好,使用增益率:

    [ G_lain-ratio(D, a) = \frac{G_lain(D, a)}{I_V(a)} ]

    [ I_V(a) = -\sum_{v=1}^V \frac{|D^v|}{|D|} \log_2 \frac{|D^v|}{|D|} ]

    属性的增益率越高,划分越有意义。

    基尼指数

    CART算法使用基尼指数作为化分标准,公式为:

    [ G_i(D) = \sum_{k=1}^{|y|} \sum_{k' \ne k} p_k p_{k'} ]

    [ = 1 - \sum_{k=1}^{|y|} p_k^2 ]

    基尼指数越小,节点纯度越高。

    剪枝处理

    剪枝是减少决策树过拟合的关键手段。

    预剪枝

    在每次划分前,评估节点是否划分能提升泛化能力,不能的停止划分。

    后剪枝

    生成完整树后,从叶子开始评估每个非叶子节点是否能替换为叶节点,提升精度。

    优点

  • 减少过拟合风险。
  • 降低训练和测试时间开销。
  • 缺点

  • 可能导致欠拟合。
  • 训练时间耗长。
  • 通过预剪枝和后剪枝,平衡过拟合与欠拟合,为决策树优化提供有效方法。

    转载地址:http://zwxpz.baihongyu.com/

    你可能感兴趣的文章
    pycharm 配置qt
    查看>>
    Pycharm+Django搭建第一个Python Web程序
    查看>>
    pycharm+pyqt5配置
    查看>>
    PyCharm不突出显示错误
    查看>>
    pycharm中windows找不到chrome解决办法
    查看>>
    Pycharm中基于Ollama和Proxy AI使用本地算力进行AI辅助编程
    查看>>
    Pycharm中配置项目的打开方式(This Window,New Window)
    查看>>
    PyCharm为什么这么牛?
    查看>>
    Pycharm出现 Cannot find declaration to go to 解决方法(全)
    查看>>
    pycharm出现Can‘t get remote credentials for deployment server 的解决方法
    查看>>
    pycharm可视化数据库
    查看>>
    pytorch 中的 #@save的意思
    查看>>
    Pycharm如何取消自动换行
    查看>>
    PyCharm安装及使用说明
    查看>>
    pycharm导入自己写的模块时,模块下方出现红色波浪线的解决方案
    查看>>
    Pycharm常用快捷键大全
    查看>>
    PyCharm快捷键
    查看>>
    Pycharm快捷键记录
    查看>>
    pycharm怎么支持WPS?
    查看>>
    pycharm打印不全问题
    查看>>