博客
关于我
Decision tree(决策树)算法初探
阅读量:408 次
发布时间:2019-03-05

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

决策树概述

决策树是一种基本的分类与回归方法,其模型呈树形结构。作为一种判别模型,决策树通过特征对实例进行分类,可以被看作是if-then规则集合,也可以被定义为特征空间与类空间上的条件概率分布。

if-then规则集合

决策树的属性结构对应着一个规则集合:由决策树的根节点到叶节点的每条路径构成的规则组成。路径上的内部特征对应着if条件,叶节点对应着then结论。决策树和规则集合是等效的,都具有互斥且完备的性质,即任何实例都被且仅被一条路径或规则覆盖。

条件概率分布

决策树也可以被看作是定义在特征空间划分上的条件概率分布。每个划分代表一个条件,特征空间被划分为互不相交的单元,每个单元定义一个类的概率分布。决策树的每条路径对应于划分中的一个单元。给定实例的特征X,一定落入某个划分,决策树选取该划分里最大后验概率对应的类作为结果输出。

决策树的优缺点

优点

  • 可读性和可解释性强:可通过可视化方式直观展现,符合"分而治之"策略。
  • 对数据预处理的要求较低:不需要预先做数据规范化。
  • 内存开销小:只需存储路径数据,内存开销为logN级别。
  • 适用于多种数据类型:既可以处理数值数据,也可以处理分类数据。
  • 适用于多分类问题:输出为多维数组。
  • 分类速度快:仅由逻辑判断组成,性能优良。
  • 缺点

  • 易陷入训练数据细节:过分细分可能导致对训练数据噪音过于敏感。
  • 不稳定性:训练样本的微小变化可能导致不同的模型。
  • 对特征工程的依赖:特征的代表性、可分性和鉴别型直接影响决策树的性能。
  • 决策树与特征工程的关系

    决策树对特征工程提出了高要求,需要特征具备代表性、可分性和鉴别型。如何提高特征的鉴别型?主要方法包括:

  • 融入领域知识:利用专家经验提取特征。
  • 特征选择与变换:对提取的特征进行筛选和优化。
  • 决策树的学习策略

    结构化风险最小

    决策树学习采用损失函数最小化的策略,通常使用正则化的极大似然估计。然而,由于决策树的结构复杂性,通常采用贪心算法进行特征选择和树的构建。

    次最优启发策略

    由于决策树的最优结构搜索问题属于NP完全,现实中通常采用启发式方法近似求解。

    结构化风险与次最优

    决策树的学习过程包括信息增益或基尼指数的计算,目标是选择能最大减少样本不确定性的特征。然而,这种贪心策略可能导致局部最优,而非全局最优。

    决策树的具体算法

    常用的决策树算法包括ID3、C4.5和CART,它们在特征选择、树的生成以及剪枝过程中有所不同。

    ID3算法

    ID3算法采用信息增益作为特征选择标准,通过递归分割训练数据集,生成决策树。

    C4.5算法

    C4.5算法与ID3相似,但采用信息增益比(gain ratio)进行特征选择,进一步优化了特征选择过程。

    CART算法

    CART算法生成二叉决策树,适用于分类和回归问题。其特点是假设每个内部结点的特征只能取"是"或"否"两个值。

    决策树剪枝算法

    为了减少过拟合,剪枝技术被引入。剪枝通过动态调整损失函数,将复杂度高的子树替换为简单的子树,从而降低模型的复杂度。

    剪枝策略

    剪枝通常基于损失函数的极小化,通过递归地回缩叶节点,选择损失函数最小的子树。

    决策树的实际应用

    通过实际例子可以看到,决策树在分类任务中的表现依赖于特征选择的优劣和树的深度。适当的剪枝可以有效降低过拟合风险,提升模型的泛化能力。

    通过上述内容可以看出,决策树是一种灵活且强大的分类与回归方法,在实际应用中需要结合特征工程和剪枝技术,才能充分发挥其优势。

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

    你可能感兴趣的文章
    NIFI1.21.0_NIFI和hadoop蹦了_200G集群磁盘又满了_Jps看不到进程了_Unable to write in /tmp. Aborting----大数据之Nifi工作笔记0052
    查看>>
    NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增删改数据分发及删除数据实时同步_通过分页解决变更记录过大问题_02----大数据之Nifi工作笔记0054
    查看>>
    NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_根据binlog实现数据实时delete同步_实际操作04---大数据之Nifi工作笔记0043
    查看>>
    NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置binlog_使用处理器抓取binlog数据_实际操作01---大数据之Nifi工作笔记0040
    查看>>
    NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_实现数据插入数据到目标数据库_实际操作03---大数据之Nifi工作笔记0042
    查看>>
    NIFI从MySql中离线读取数据再导入到MySql中_03_来吧用NIFI实现_数据分页获取功能---大数据之Nifi工作笔记0038
    查看>>
    NIFI从PostGresql中离线读取数据再导入到MySql中_带有数据分页获取功能_不带分页不能用_NIFI资料太少了---大数据之Nifi工作笔记0039
    查看>>
    NIFI同步MySql数据_到SqlServer_错误_驱动程序无法通过使用安全套接字层(SSL)加密与SQL Server_Navicat连接SqlServer---大数据之Nifi工作笔记0047
    查看>>
    Nifi同步过程中报错create_time字段找不到_实际目标表和源表中没有这个字段---大数据之Nifi工作笔记0066
    查看>>
    NIFI大数据进阶_FlowFile拓扑_对FlowFile内容和属性的修改删除添加_介绍和描述_以及实际操作---大数据之Nifi工作笔记0023
    查看>>
    NIFI大数据进阶_NIFI的模板和组的使用-介绍和实际操作_创建组_嵌套组_模板创建下载_导入---大数据之Nifi工作笔记0022
    查看>>
    NIFI大数据进阶_NIFI监控的强大功能介绍_处理器面板_进程组面板_summary监控_data_provenance事件源---大数据之Nifi工作笔记0025
    查看>>
    NIFI大数据进阶_内嵌ZK模式集群1_搭建过程说明---大数据之Nifi工作笔记0015
    查看>>
    NIFI大数据进阶_外部ZK模式集群1_实际操作搭建NIFI外部ZK模式集群---大数据之Nifi工作笔记0017
    查看>>
    NIFI大数据进阶_离线同步MySql数据到HDFS_01_实际操作---大数据之Nifi工作笔记0029
    查看>>
    NIFI大数据进阶_离线同步MySql数据到HDFS_02_实际操作_splitjson处理器_puthdfs处理器_querydatabasetable处理器---大数据之Nifi工作笔记0030
    查看>>
    NIFI大数据进阶_连接与关系_设置数据流负载均衡_设置背压_设置展现弯曲_介绍以及实际操作---大数据之Nifi工作笔记0027
    查看>>
    NIFI数据库同步_多表_特定表同时同步_实际操作_MySqlToMysql_可推广到其他数据库_Postgresql_Hbase_SqlServer等----大数据之Nifi工作笔记0053
    查看>>
    NIFI汉化_替换logo_二次开发_Idea编译NIFI最新源码_详细过程记录_全解析_Maven编译NIFI避坑指南001---大数据之Nifi工作笔记0068
    查看>>
    NIFI集群_内存溢出_CPU占用100%修复_GC overhead limit exceeded_NIFI: out of memory error ---大数据之Nifi工作笔记0017
    查看>>