机器学习-决策树知识点小结(ID3,C4.5,CART)

目录

1.什么是决策树?

2.决策树相关概念;

3.决策树构建过程;

4.决策树基本流程;

5.决策树相关知识;

6.决策树算法(ID3,C4.5,CART);

7.决策树优缺点以及应用场景;

1.什么是决策树?

决策树是一种简单高效并且具有强解释性的模型,广泛应用于数据分析领域。其本质是一颗由多个判断节点组成的树。
机器学习-决策树知识点小结(ID3,C4.5,CART)_第1张图片
决策树是一个类似于流程图的树结构,其中每一个树节点表示一个属性上的测试,每一个分支代表一个属性的输出,每一个树叶节点代 表一个类或者类的分布,树的最顶层是树的根节点。数据挖掘中决策树是一种经常要用到的技术,可以用于分析数据,同样也可以用来作预测。
说白了决策树就是if else的堆砌,是一个树形结构,我们在构建决策树分类器的时候主要关心的是用什么特征分类和分多少个枝叶。
决策树的分类:
决策树主要分为两类:分类型与回归性,但在机器学习中大多使用决策树来进行分类。

  • 分类型决策树:离散性,其目标变量是离散的,如性别:男或女等;主要用于分类问题
  • 回归类决策树:连续性,其目标变量是连续的,如工资、价格;回归类问题

2.决策树相关概念:

  • 根结点:它表示整个样本集合,是其他节点的父节点;
  • 拆分:将一个结点拆分成多个子集的过程;
  • 叶子结点:无法再拆分的结点被称为叶子结点;
  • 剪枝:移除决策树中子结点的过程就叫做剪枝;
  • 父结点:一个结点被拆分成多个子节点,这个结点就叫做父节点;
  • 子节点:父节点其拆分后的子结点也叫做子结点。

3.决策树构建过程:

决策树的构造过程一般分为3个部分,分别是特征选择、决策树生产和决策树裁剪。

(1)特征选择:
做决策时,随着划分过程不断进行,我们希望决策树的分支节点所包含的样本尽可能属于同一个类别,即节点的“纯度”(purity)越来越高。特征选择就是从众多的特征中选择一个特征作为根节点为标准进行划分。
如何选择特征有不同的量化评估方法主要有三种:

  • ID3: 通过信息增益为准则,来选择特征;
  • C4.5: 通过信息增益率,来选择特征;
  • CART: 通过Gini基尼系数指数,来选择特征;
    目标:使用某特征对数据集划分之后,各数据子集的纯度要比划分钱的数据集D的纯度高;

(2)决策树的生成:
根据选择的特征评估标准,从上至下递归地生成子节点,直到数据集不可分,则停止决策树生长。这个过程实际上就是使用满足划分准则的特征不断的将数据集划分成纯度更高。每一次划分,都希望根据某个特征划分之后的各个子集的纯度更高,不确定性更小。

(3)决策树的裁剪:
决策树树的不断增长,会使得训练样本集的精度不断上升,容易过拟合,一般需要剪枝来缩小树结构规模、缓解过拟合。
剪枝分类:
预剪枝(prepruning):通过修改停止条件来及早地停止决策树的生长,结果是决策树一般比较小,不能给出数据总体的概况,容易引起欠拟合问题。

后剪枝(post-pruning): 将数据集分为测试集和训练集,构建足够大、足够复杂的决策树,然后从上到下遍历叶子节点,用测试集判断将这些叶子节点合并是否能降低测试误差,是的话就合并。后剪枝的主要问题是计算效率较低。

4.决策树一般流程:

(1)输入需要分类的数据集和类别标签和靶标签。

(2)检验数据集是否只有一列,或者是否最后一列(靶标签数据默认放到最后一列)只有一个水平(唯一值)。

是:返回唯一值水平或者占比最大的那个水平

(3)调用信息增益公式,计算所有节点的信息增益,得到最大信息增益所对应的类别标签。

(4)建立决策树字典用以保存当次叶节点数据信息。

(5)进入循环:

按照该类别标签的不同水平,依次计算子数据集;

对子数据集重复(1),(2),(3),(4),(5), (6)步。

(6)返回决策树字典。

决策树实际上是一个大的递归函数,其结果是一个多层次的字典。

参数设置
可以通过设置一些参数,调整算法或调优

算法设置

  • algo:决策树类型,分类或回归,Classification or Regression
  • numClasses: 分类问题设置分类个数
  • categoricalFeaturesInfo:指定哪些feature是离散值,并指定离散值的个数

停止条件设置

  • maxDepth:树最大深度
  • minInstancesPerNode:每个树节点最小的训练数据个数,如果小于此值,则不进行分裂
  • minInfoGain:最小信息增益,决定当前树节点是否进行分裂

调优参数

  • maxBins:用于连续特征值的分散化,最多划分类个数
  • maxMemoryInMB:增大,可以提高同时训练的树节点的个数,从而减少训练时间,但是,每次训练会增大数据的传输量
  • subsamplingRate:训练森林时使用,每次采样的比例

5.决策树相关知识:

5.1 信息熵:
直到1948年,香农提出了“信息熵”的概念, 香农从热力学中借用过来的。热力学中的热熵是表示分子状态混乱程度的物理量,香农用信息熵的概念来描述信源的不确定度。
通常,一个信源发送出什么符号是不确定的,衡量它可以根据其出现的概率来度量。概率大,出现机会多,不确定性小;反之不确定性就大。

机器学习-决策树知识点小结(ID3,C4.5,CART)_第2张图片

  • 从公式上看,信息熵就是一件事每个类别的信息I(Xi)乘以它的发生的概率p(Xi)的和。
  • x表示随机变量,与之相对应的是所有可能输出的集合,定义为符号集,随机变量的输出用x表示。
  • P(x)表示输出概率函数。变量的不确定性越大,熵也就越大,把它搞清楚所需要的信息量也就越大.

5.2.条件熵(Conditional Entropy)

  • 条件熵是用来解释信息增益而引入的概念。

  • 概率定义:随机变量X在给定条件下随机变量Y的条件熵,对定义描述为:X给定条件下Y的条件干率分布的熵对X的数学期望。

机器学习-决策树知识点小结(ID3,C4.5,CART)_第3张图片
5.3信息增益(Information Gain)

  • 信息增益在决策树算法中是用来选择特征的指标,信息增益越大,则这个特征的选择性越好;

  • 在概率中定义为:待分类的集合的熵和选定某个特征的条件熵之差(这里只的是经验熵或经验条件熵,由于真正的熵并不知道,是根据样本计算出来的);
    在这里插入图片描述
    机器学习-决策树知识点小结(ID3,C4.5,CART)_第4张图片
    5.4基尼值【Gini】
    CART(Classification and Regression Tree)使用基尼指数来选择划分属性。直观来说,Gini(D)反映了从数据集D中随机抽取两个样本,其类别标记不一致的概率,因此Gini(D)越小,则数据集D的纯度越高。
    公式:
    在这里插入图片描述

     k:数据集中样本类型数量;
     Pi:第 i 类样本的数量占总样本数量的比例
     
     基尼系数的性质与信息熵一样:度量随机变量的不确定度的大小;
     G 越大,数据的不确定性越高;
     G 越小,数据的不确定性越低;
     G = 0,数据集中的所有样本都是同一类别;
    

5.5信息熵 VS 基尼系数

  • 信息熵的计算比基尼系数慢

  • 原因:计算信息熵 H 时,需要计算一个 log§,而基尼系数只需要计算 P2;

  • 因此,scikit-learn 中的 DecisionTreeClassifier() 类中,参数 criterion =
    ‘gini‘,默认选择基尼系数的方式进行划分节点数据集;

  • 大多数时候,二者没有特别的效果优劣;

6.决策树算法(ID3,C4.5,CART)

每次做决策时选择最优划分属性,一般而言,随着划分过程不断进行,我们希望决策树的分支节点所包含的样本尽可能属于同一个类别,即节点的“纯度”(purity)越来越高。

ID3算法

  • ID3算法的核心是在决策树各个结点上对应信息增益准则选择特征,递归地构建决策树。
    具体方法是:从根结点开始,对结点计算所有可能的特征的信息增益,选择信息增益最大的特征作为结点特征,由该特征的不同取值建立子节点;再对子结点递归地调用以上方法,构建决策树;直到所有特征的信息增益均很小或没有特征可以选择为止,最后得到一个决策树。
    机器学习-决策树知识点小结(ID3,C4.5,CART)_第5张图片
    观察上图,由于A3(有房子)特征的信息增益值最大,所有我们要选择特征A3最为根节点,他将训练集分成2个子节点D1(A3==“是”)和D2(A3==“否”),如果是“是”,由于D2只有同一类的样本点,所有它成为了一个叶子节点,节点为“是”。
    机器学习-决策树知识点小结(ID3,C4.5,CART)_第6张图片
    然后我再对D2再次从特征A1,A2,A4中选取新的特征,来计算各个特征的信息增益:
    10条数据:B目标特征中 6个是y,4个否n
    所以:当前系统信息熵:
    y 6 p1 = 4/10
    n 4 p2= 6/10
    机器学习-决策树知识点小结(ID3,C4.5,CART)_第7张图片
    ID3算法的不足:
    ID3算法虽然提出了新思路,但是还是有很多值得改进的地方。
    1. ID3没有考虑连续特征,比如长度,密度都是连续值,无法在ID3运用。
    2. ID3采用信息增益大的特征优先建立决策树的节点。
    3. 在相同条件下,取值比较多的特征比取值少的特征信息增益大
    4. ID3算法对于缺失值的情况没有做考虑
    5. 没有考虑过拟合的问题
         基于上述不足,对ID3算法做了改进,这就是C4.5算法,也许你会问,为什么不叫ID4,ID5之类的名字呢?那是因为决策树太火爆,他的ID3一出来,别人二次创新,很快 就占了ID4, ID5,所以他另辟蹊径,取名C4.0算法,后来的进化版为C4.5算法。下面我们就来聊下C4.5算法

C4.5:

  • 对于上面ID3不足的第一个问题,C4.5的思路是将连续的特征离散化。选择信息增益最大的点作为该连续特征的二元离散分类点。比如取到的增益最大的点为at,则小于at的值为类别1,大于at的值为类别2,这样我们就做到了连续特征的离散化。
  • 对于第二个问题,信息增益作为标准容易偏向于取值较多的特征的问题。引入了一个信息增益比的变量IR(X,Y),它是信息增益和特征熵的比值。特征数越多的特征对应的特征熵越大,它作为分母,可以校正信息增益容易偏向于取值较多的特征的问题。
  • 对于第三个问题第三个缺失值处理的问题,主要体现在两方面,一是在样本某些特征缺失的情况下选择划分的属性;二是选定了划分属性,对于在该属性上缺失特征的样本的处理。对于第一个方面,对于某一个有缺失特征值的特征A。C4.5的思路是将数据分成两部分,对每个样本设置一个权重(初始可以都为1),然后划分数据,一部分是有特征值A的数据D1,另一部分是没有特征A的数据D2.然后对于没有缺失特征A的数据集D1来和对应的A特征的各个特征值一起计算加权重后的信息增益比,最后乘上一个系数,这个系数是无特征A缺失的样本加权后所占加权总样本的比例。对于第二个方面,可以将缺失特征的样本同时划分入所有的子节点,不过将该样本的权重按各个子节点样本的数量比例来分配。
  • 对于第四个问题,C4.5引入了正则化系数进行初步的剪枝.
    C4.5算法的不足
  • 由于决策树算法非常容易过拟合,因此对于生成的决策树必须要进行剪枝。C4.5的剪枝方法有优化的空间。思路主要是两种,一种是预剪枝,即在生成决策树的时候就决定是否剪枝。另一个是后剪枝,即先生成决策树,再通过交叉验证来剪枝。并不是最理想的的
  • C4.5生成的是多叉树,即一个父节点可以有多个节点。很多时候,在计算机中二叉树模型会比多叉树运算效率高。如果采用二叉树,可以提高效率。
  • C4.5只能用于分类,如果能将决策树用于回归的话可以扩大它的使用范围。
  • C4.5由于使用了熵模型,里面有大量的耗时的对数运算,如果是连续值还有大量的排序运算。如果能够加以模型简化可以减少运算强度但又不牺牲太多准确性的话,那就更好了。

CART:

CART,又名分类回归树,是在ID3和C4.5的基础上进行优化的决策树:

  1. CART既能是分类树,又能是回归树;如果待预测结果是离散型数据,则CART生成分类决策树;如果待预测结果是连续型数据,则CART生成回归决策树。
  2. 当CART是分类树时,采用GINI值作为节点分裂的依据;当CART是回归树时,采用样本的最小方差作为节点分裂的依据;
  3. CART是一棵二叉树。

CART分类树——待预测结果为离散型数据:*
转:https://www.jb51.net/article/131084.htm
机器学习-决策树知识点小结(ID3,C4.5,CART)_第8张图片
CART回归树——待预测分类为连续型数据:
机器学习-决策树知识点小结(ID3,C4.5,CART)_第9张图片

模型使用:

机器学习-决策树知识点小结(ID3,C4.5,CART)_第10张图片
创建决策树模型
机器学习-决策树知识点小结(ID3,C4.5,CART)_第11张图片
criterion=‘gini‘:使用 “基尼系数” 方式划分节点数据集;
criterion=‘entropy‘:使用 “信息熵” 方式划分节点数据集;
机器学习-决策树知识点小结(ID3,C4.5,CART)_第12张图片
训练模型及预测
机器学习-决策树知识点小结(ID3,C4.5,CART)_第13张图片

7.决策树优缺点以及应用场景;

优点:

  • 决策树易于理解和实现;
  • 数据处理简单,对缺失值不敏感;
  • 能够同时处理数据型变量和类别变量;
  • 能够处理不相关的特征;
  • 能够用于分类问题,也可以用于回归问题;
  • 决策树在运算过程中也是非常迅速的;
  • 一般而言,决策树还具有比较理想的预测准确率。

缺点:

  • 容易在训练数据中生成复杂的树结构,造成过拟合;
  • 忽略了数据之间的相关性;
  • 不适合处理高维数据,属性特征过多的数据;
  • 对异常值过于敏感,很容易导致树的结构巨大的变换;
  • 模型的更新复杂,每当有新的样本进来时,树的结构可能会发生大的改变;
    树模型的应用场景:
  • 因为它能够生成清晰的基于特征(feature)选择不同预测结果的树状结构,数据分析师希望更好的理解手上的数据的时候往往可以使用决策树
  • 在中小数据集上,优先选择集成树模型。
  • 在需要模型解释度的项目上,优先使用树模型
  • 在项目时间较短的项目上,如果数据质量低(大量缺失值、噪音等),优先使用集成树模型

你可能感兴趣的:(机器学习算法)