博客
关于我
西瓜书学习笔记——决策树
阅读量: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/

    你可能感兴趣的文章
    Redis从入门到精通
    查看>>
    PHP5.6.x编译报错:Don't know how to define struct flock on this system, set --enable-opcache=no
    查看>>
    php5ts.dll 下载_php5ts.dll下载
    查看>>
    php7
    查看>>
    PHP7 新特性
    查看>>
    PHP7+MySQL5.7+Nginx1.9. on Ubuntu 14.0
    查看>>
    php7.1.6 + redis
    查看>>
    php7中使用php_memcache扩展
    查看>>
    PHP7中十个需要避免的坑
    查看>>
    php7和PHP5对比的新特性和性能优化
    查看>>
    PHP7安装pdo_mysql扩展
    查看>>
    PHP7实战开发简单CMS内容管理系统(7) 后台登录架构 用户登录校验
    查看>>
    php7,从phpExcel升级到PhpSpreadsheet
    查看>>
    PHP8.1 + ThinkPHP实战指南:高效构建现代化网站的六大技巧
    查看>>
    PHP8中match新语句的操作方法
    查看>>
    PHP:第一章——PHP中常量和预定义常量
    查看>>
    PHP:第一章——PHP中的位运算
    查看>>
    phpcms
    查看>>
    phpcms 2008 product.php pagesize参数代码注射漏洞
    查看>>
    phpcms V9 自定义添加 全局变量{DIY_PATH}方法
    查看>>