怎么理解python决策树的基本原理

技术怎么理解python决策树的基本原理本篇文章给大家分享的是有关怎么理解python决策树的基本原理,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。决策树是

本文是关于如何理解python决策树的基本原理。边肖觉得很实用,所以分享给大家学习。希望你看完这篇文章能有所收获。我们就不多说了。让我们和边肖一起看看。

决策树是一种非参数监督学习方法,主要用于分类和回归问题。

决策树模型通过一系列if then决策规则将特征空间划分为有限数量的不相交子区域。对于落在同一子区域的样本,决策树模型给出相同的预测值。

这些if-then决策规则之间的层次关系形成了一个树形结构,称为决策树。这些不相交的子区域一一对应于树结构的叶节点。

怎么理解python决策树的基本原理

一,决策树原理概述

1,假设空间

从假设空间、目标函数和优化算法三个方面阐述了决策树算法的基本原理。

假设空间是我们对模型形式的先验假设,我们最终得到的模型必须符合我们对模型形式的先验假设。

决策树模型的先验形式可以表示如下:

怎么理解python决策树的基本原理

其中q[x]是从特征空间映射到节点数空间的函数。决策树模型的关键是将特征空间划分为不相交的子区域,同一子区域内的样本具有相同的预测值。

为了确定一棵决策树的完整结构,需要明确以下两个方面:一是如何划分子区域,二是子区域的预测值有多少。

2,目标函数

目标函数是我们用来评估模型质量的标准。目标函数决定了我们从假设空间中选择模型的偏好。

怎么理解python决策树的基本原理

决策树的目标函数可以用来评价决策树的质量。这一目标职能应包括两个方面。第一个是反映决策树对样本数据点拟合精度的损失项,第二个是反映决策树模型复杂度的正则化项。

正则项可以取模型的叶节点数。也就是说,决策树模型划分的不相交的子区域越多,我们认为模型越复杂。

对于损失项,如果是回归问题,损失项可以取平方损失;如果是分类问题,我们可以用杂质作为测量标准。

为什么用不纯?由于决策树同一个叶节点上的所有样本都有相同的预测值,如果这些样本的真标签只有一个值,那么这个叶节点上的样本就非常纯粹,我们可以直接将预测值指定为这个叶节点上标签的值,预测误差为0。相反,如果叶节点上不同样本的标签值杂乱无章,所谓难以调整,那么无论我们如何指定叶节点上的预测值,总会出现较大的预测误差。

那么,如何测量杂质呢?一般有三种方法,信息熵、基尼杂质和分类错误率。分类错误率是将标签值最多的类别作为叶节点的预测值时的错误率。信息熵和基尼杂质后面会介绍。

3,优化算法

优化算法是指如何调整我们模型的结构或模型超参数的值,使模型的目标函数值不断下降。

优化算法决定了我们采取什么步骤在假设空间中找到合适的模型。

对于决策树,优化算法包括树生成策略和树剪枝策略。

树生成策略一般采用贪婪思想不断选择特征来分割特征空间。

树木的修剪策略一般分为修剪前策略和修剪后策略。一般来说,后剪枝策略生成的决策树是有效的,但其计算成本也较高。

二,ID3,C4.5,CART决策树的对比

1,适用问题范围的不同

ID3算法只能处理离散特征的分类,C4.5可以处理离散特征和连续特征的分类,而CART算法可以处理离散和连续特征的分类和回归。

2,假设空间的不同

ID3和C4.5算法使用的决策树可以是多分支的,而CART算法的决策树必须是二叉树。

3,目标函数的不同

同样,在处理分类问题时,这三个模型在决定选择哪个特征来分割决策树时使用不同的标准。ID3算法以信息增益为标准,C4.5算法以信息增益率为标准,CART算法以基尼杂质增益为标准。

4,优化算法的不同

这三种算法有不同的剪枝策略。

ID3算法实际上没有修剪策略,当叶节点

上的样本都属于同一个类别或者所有特征都使用过了的情况下决策树停止生长。

C4.5算法使用预剪枝策略,当分裂后的增益小于给定阈值或者叶子上的样本数量小于某个阈值或者叶子节点数量达到限定值或者树的深度达到限定值,决策树停止生长。

CART决策树主要使用后剪枝策略。

5,效果上的差异

ID3决策树是最早出现的决策树,C4.5是在它基础上的改进,CART决策树是更晚出现的,效果上一般而言CART树会好于C4.5,C4.5会好于ID3.

三,熵,条件熵,信息增益,信息增益率

1,熵

熵是对某个离散随机变量不确定性大小的一种度量。既然是反应不确定性的,我们的先验知识是当随机变量只有一种取值时,熵为0,当随机变量的取值可能性越多,在各个可能性之间的概率分布越平均,熵越大。熵的计算公式满足这些先验的特性。注意,熵只能度量离散随机变量的不确定性。

怎么理解python决策树的基本原理


 

在决策树的应用场景中,我们实际上是用经验熵来衡量标签取值分布的“纯度”的,即用频率分布代替概率分布进行计算。

怎么理解python决策树的基本原理

2,条件熵

所谓条件熵,是指给定随机变量X的取值的前提下,随机事件Y的不确定性的一种度量。

怎么理解python决策树的基本原理

在决策树的应用场景中,条件熵的含义更加清晰明了,即按照离散特征X的取值将样本空间划分成多个叶子节点,各个叶子节点上样本标签Y取值的熵不纯度的加权平均。

3,信息增益

随机变量X对于随机变量Y的信息增益被定义成Y的熵和Y对X的条件熵之差。

怎么理解python决策树的基本原理

在决策树的应用场景中,信息增益的含义就是特征X对样本标签Y不确定性减少的贡献。

信息增益也叫做互信息。互信息存在如下特性,Y对X的互信息和X对Y的互信息是相等的。互信息是衡量两个离散随机变量之前相关性的一种常用指标。

怎么理解python决策树的基本原理

简单证明如下:

怎么理解python决策树的基本原理

4,信息增益率

ID3模型采用信息增益作为待分裂特征的选择标准,但是信息增益倾向于选择特征取值数量较多的特征。C4.5用信息增益率作为待分裂特征的选择标准,可以避免这种倾向。值得注意的是,C4.5在选择连续特征的分裂点位的时候,依然使用信息增益作为选择标准。

X对Y的信息增益率是X对Y的信息增益和X的熵的比值。

怎么理解python决策树的基本原理

四,基尼不纯度和基尼不纯度增益

1,基尼不纯度

基尼不纯度和熵具有相似的作用,可以衡量一个随机变量取值的不确定性或者说"不纯净"程度。它满足我们的先验预期,当随机变量只有一种可能取值的时候,基尼不纯度为0,当随机变量的可能取值数量越多,取值概率分布越平均,基尼不纯度越大。

基尼不纯度的定义如下。

怎么理解python决策树的基本原理

基尼不纯度满足我们对不确定性衡量指标的先验假设。事实上,基尼不纯度和熵有非常密切的关系,把熵的对数部分泰勒展开到1阶,即得到基尼不纯度的定义公式。

怎么理解python决策树的基本原理

2,基尼不纯度增益

基尼不纯度增益和信息增益的作用非常类似。计算方法也非常相似。

怎么理解python决策树的基本原理

值得注意的是CART决策树是二叉树,在计算离散特征的基尼不纯度增益时会尝试根据特征是否取某个特定的类别把特征空间分成两部分,而在计算连续特征的基尼不纯度增益时会尝试选择一个分裂点位把特征空间分成两部分。

以上就是怎么理解python决策树的基本原理,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/132975.html

(0)

相关推荐

  • MySQL是如何保证数据不丢的

    技术MySQL是如何保证数据不丢的本篇内容主要讲解“MySQL是如何保证数据不丢的”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL是如何保证数据不丢的”吧!

    攻略 2021年12月8日
  • 10. 正则表达式匹配

    技术10. 正则表达式匹配 10. 正则表达式匹配给你一个字符串s和一个字符规律p,请你来实现一个支持 '.'和'*'的正则表达式匹配。
    '.' 匹配任意单个字符
    '*' 匹配零个或多个前面的那一个元素

    礼包 2021年12月14日
  • 大数据Linux开发笔记-10磁盘分区

    技术大数据Linux开发笔记-10磁盘分区 大数据Linux开发笔记-10磁盘分区分区的方式:mbr分区最多支持四个主分区
    系统只能安装在主分区
    扩展分区要站一个主分区
    最大支持2TB,但拥有最好的兼容

    礼包 2021年10月26日
  • gps是什么意思,导航和GPS有什么区别

    技术gps是什么意思,导航和GPS有什么区别GPS(Global Positioning System)即全球卫星定位系统,从1973年发展到2009年36年间,实际意义早已超过设计之初的定义。现在,GPS不仅仅为移动目

    生活 2021年10月28日
  • 过滤器和拦截器的区别有哪些

    技术过滤器和拦截器的区别有哪些这篇文章主要讲解了“过滤器和拦截器的区别有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“过滤器和拦截器的区别有哪些”吧!Filter的使

    攻略 2021年10月28日
  • Adaptive Cursor Sharing分析

    技术Adaptive Cursor Sharing分析这篇文章主要讲解了“Adaptive Cursor Sharing分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“

    攻略 2021年11月15日