机器学习理论《统计学习方法》学习笔记:第五章 决策树

  • 决策树
    • 5.1 决策树模型与学习
      • 5.1.1 决策树模型
      • 5.1.2 决策树与if-then规则
      • 5.1.3 决策树与条件概率分布
      • 5.1.4 决策树学习
    • 5.2 特征选择
      • 5.2.1 特征选择问题
      • 5.2.2 信息增益
      • 5.2.3 信息增益比
    • 5.3 决策树的生成
      • 5.3.1 ID3算法
    • 5.3.1 C4.5算法
    • 5.4 决策树的剪枝
    • 5.5 CART算法
      • 5.5.1 CART生成
        • 1. 回归树的生成
        • 2. 分类树的生成
      • 5.5.2 CART剪枝
    • 本章概要

决策树

  • 决策树(Decision Tree)是一种基本的分类与回归方法。本章主要用于分类的决策树。决策树模型呈树形结构,在分类问题中,表示基于特征对实例进行分类的过程。它可以认为是if-then规则的集合,也可以认为是定义在特征空间与类空间上的条件概率分布。
  • 决策树的主要优点是:模型具有可读性,分类速度快。学习时,利用训练数据,根据损失函数最小化的原则建立决策树模型。预测时,对新的数据,利用决策树模型进行分类。
  • 决策树模型学习通常包括3个步骤:特征选择、决策树的生成、决策树的修剪。这些决策树学习的思想主要来源于Quinlan在1986年提出的ID3算法和1993年提出的C4.5算法,以及由Breiman等人在1984年提出的CART算法。

5.1 决策树模型与学习

5.1.1 决策树模型

  • 决策树定义:分类决策树模型是一种描述对实例进行分类的树形结构。决策树由结点(node)和有向边(directed edge)组成。结点有两种类型:内部结点(internal node)和叶结点(leaf node)。内部结点表示一个特征或属性,叶结点表示一个类。
  • 用决策树分类,从根结点开始,对实例的某一特征进行测试根据测试结果,将实例分配到其子结点;这时,每一个子结点对应着该特征的一个取值。如此递归地对实例进行测试并分配,直至达到叶结点。最后将实例分到叶结点的类中。
  • 决策树模型:圆表示内部结点,方块表示叶结点。

5.1.2 决策树与if-then规则

  • 可以将决策树看成是一个if-then规则的集合。将决策树转换成if-then规则的过程是:由决策树根节点到叶结点的每一条路径构建一条规则;路径上内部结点的特征对应着规则的条件,而叶结点的类对应着规则的结论。
  • 决策树的路径或其对应的if-then规则集合具有一个重要的性质:互斥并且完备。这就是说,每一个实例都被一条路径或一条规则所覆盖,而且只被一条规则或路径覆盖。所谓覆盖是指实例的特征与路径上的特征一致或实例满足规则的条件。

5.1.3 决策树与条件概率分布

  • 决策树还表示给定特征条件下类的条件概率分布。这一条概率分布定义在特征空间的一个划分(partition)上。将特征空间划分为互不相交的单元(cell)或区域(Region),并在每个单元定义一个类的概率分布就构成了一个条件概率分布。决策树的一条路径对应于划分中的一个单元。
  • 决策树所表示的条件概率分布由各个单元给定的条件下类的条件概率分布组成。假设XXX为表示特征向量的随机变量,YYY为表示类的随机变量,那么这个条件概率分布可以表示为P(Y∣X)P(Y|X)P(Y∣X).XXX取值于给定划分下单元的集合,YYY取值于类的集合。各叶结点(单元)上的条件概率往往偏向于某一个类,即属于某一个类的概率较大。决策树分类时,将该结点的实施强行分到条件概率大的那一类去。
  • 图(a)中的大正方形表示特征空间,这个大正方形被若干个小矩形分割,每个小矩形表示一个单元。特征空间划分上的单元构成了一个集合,XXX取值为单元的集合。为了简单起见,假设只有两类:正类和负类,即YYY取值为+1或-1,小矩形中的数字表示单元的类。
  • 图(b)表示特征空间划分确定时,特征(单元)给定条件下类的条件概率分布。
  • 条件概率分布对应的决策树

5.1.4 决策树学习

假设给定训练数据集D={(x1,x1),(x2,x2),⋯,(xN,xN)}D=\{(x_1,x_1),(x_2,x_2),\cdots,(x_N,x_N)\}D={(x1​,x1​),(x2​,x2​),⋯,(xN​,xN​)}其中,xi=(xi(1),xi(2),⋯,xi(n))nx_i=(x_i^{(1)},x_i^{(2)},\cdots,x_i^{(n)})^nxi​=(xi(1)​,xi(2)​,⋯,xi(n)​)n为输入实例(特征向量),n为特征个数,yi∈{1,2,⋯,K}y_i\in \{1,2,\cdots,K\}yi​∈{1,2,⋯,K}为类标记,i=1,2,⋯,Ni=1,2,\cdots,Ni=1,2,⋯,N,N为样本容量。决策树学习的目标是根据给定的训练数据构建一个决策树模型,使它能够对实例进行正确的分类。

决策树学习本质上是从训练数据集中归纳出一组分类规则。与训练数据集不相矛盾的决策树,即能对训练数据正确分类的决策树,可能有多个,也可能一个都没有。我们需要的是一个与训练数据矛盾较小的决策树,同时具有很好的泛化能力。从另一个角度看,决策树学习是由训练数据集估计条件概率模型。基于特征空间划分的类的条件概率模型有无穷多个。我们选择的条件概率模型应该不仅对训练数据有很好的拟合,而且对未知数据有很好的预测。

决策树学习用损失函数表示这一目标。决策树的损失函数通常是正则化的极大似然函数。决策树学习的策略是以损失函数为目标函数的最小化。

当损失函数确定后,学习问题就变为在损失函数意义下,选择最优决策树的问题。因为从所有可能的决策树中选取最优决策树是NP完全问题,所以现实中决策树学习算法通常采用启发式方法,近似求解这一最优化问题,这样得到的决策树是次最优的。

决策树学习的算法通常是一个递归地选择最优特征,并根据该特征对训练数据进行分割,使得对各个子数据集有一个最好的分类过程。这一过程对应着对特征空间的划分,也对应着决策树的构建。开始构建根结点,将所有训练数据都放在根结点。选择一个最优特征,按照这一特征将训练数据集分割成子集,使得各个子集有一个在当前条件下最好的分类。如果这些子集已经能够被基本正确分类,那么构建叶结点,并将这些子集分到所对应的叶结点中去。如果还有子集不能被基本正确分类,那么就对这些子集选择新的最优特征,继续对其进行分割,构建相应的结点。如此递归的进行下去,直至所有训练数据子集被基本正确分类,或者没有合适的特征为止。最后每个子集都被分到叶结点上,即都有了明确的类。这就生成了一棵决策树。

以上方法生成的决策树,可能对训练数据有很好的分类能力。但对未知的测试数据却未必有很好的分类能力,即可能发生过拟合现象。我们需要对已生成的树自下而上进行剪枝,将树变得更简单,从而使它具有更好的泛化能力。具体地,就是去掉过于细分的叶结点,使其回退到父结点,甚至更高的结点,然后将父结点或更高的结点改为新的叶结点。

如果特征数量很多,也可以在决策树学习开始的时候,对特征进行选择,只留下对训练数据有足够分类能力的特征。

可以看出,决策树学习算法包含特征选择、决策树的生成、决策树的剪枝过程。由于决策树表示一个条件概率分布,所以深浅不同的决策树对应着不同复杂度的概率模型。决策树的生成对应于模型的局部选择,决策树的剪枝对应于模型的全局选择。决策树的生成只考虑局部最优,相对地,决策树的剪枝则考虑全局最优。

决策树学习常用的算法有ID3,C4.5,与CART,下面结合这些算法分别叙述决策树学习的特征选择、决策树的生成和剪枝过程。

5.2 特征选择

5.2.1 特征选择问题

特征选择在于选取对训练数据具有分类能力的特征。这样可以提高决策树学习的效率。如果利用一个特征进行分类的结果与随机分类的结果没有很大区别,则称这个特征是没有分类能力的。经验上,扔掉这样的特征对决策树学习的进度影响不大,通常特征选择的准则是信息增益或信息增益比。

5.2.2 信息增益

在信息论与概率统计中,熵(entropy)是表示随机变量不确定性的度量。设XXX是一个取有限个值的离散随机变量,其概率分布为P(X=xi)=pi,i=1,2,⋯,nP(X=x_i)=p_i,i=1,2,\cdots,nP(X=xi​)=pi​,i=1,2,⋯,n则随机变量XXX的熵定义为H(X)=−∑i=1npilog(pi)H(X)=-\sum_{i=1}^np_ilog(p_i)H(X)=−i=1∑n​pi​log(pi​)若pi=0p_i=0pi​=0,则定义0log(0)=00log(0)=00log(0)=0.当对数以2为底或以e为底,这时熵的单位分别被称作比特(bit)或纳特(nat)。由定义可知,熵只依赖于XXX的分布,而与XXX的取值无关,所以也可以将XXX的熵记作H(p)H(p)H(p),即H(p)=−∑i=1npilog(pi)H(p)=-\sum_{i=1}^np_ilog(p_i)H(p)=−i=1∑n​pi​log(pi​)

熵越大,随机变量的不确定性越大,从定义可以验证0≤H(p)≤log(n)0\le H(p) \le log (n)0≤H(p)≤log(n)当随机变量只取两个值,例如1,0时,即XXX的分布为P(X=1)=p,P(X=0)=1−p,0≤p≤1P(X=1)=p,P(X=0)=1-p,0\le p \le 1P(X=1)=p,P(X=0)=1−p,0≤p≤1熵为H(p)=−plog2p−(1−p)log2(1−p)H(p)=-plog_2p-(1-p)log_2(1-p)H(p)=−plog2​p−(1−p)log2​(1−p)这时,熵H(p)H(p)H(p)随概率ppp变化的曲线如图所示。(分布为伯努利分布时熵与概率的关系)。

当p=0p=0p=0或p=1p=1p=1时,H(p)=0H(p)=0H(p)=0,随机变量完全没有不确定性。当p=0.5p=0.5p=0.5时,H(p)=1H(p)=1H(p)=1,熵取值最大,随机变量不确定性最大。

设随机变量(X,Y)(X,Y)(X,Y),其联合概率分布为P(X=xi,Y=yi)=pij,i=1,2,⋯,n;j=1,2,⋯,mP(X=x_i,Y=y_i)=p_{ij},i=1,2,\cdots,n;j=1,2,\cdots,mP(X=xi​,Y=yi​)=pij​,i=1,2,⋯,n;j=1,2,⋯,m条件熵H(Y∣X)H(Y|X)H(Y∣X)表示在已知随机变量XXX的条件下,随机变量YYY的不确定性。随机变量XXX给定条件下随机变量YYY的条件熵H(Y|X),定义为XXX给定条件下YYY的条件概率分布的熵对XXX的数学期望H(Y∣X)=∑i=1npiH(Y∣X=xi)H(Y|X)=\sum_{i=1}^np_iH(Y|X=x_i)H(Y∣X)=i=1∑n​pi​H(Y∣X=xi​)

当熵和条件熵中的概率由数据估计(特别是极大似然估计)得到时,所对应的熵与条件熵分别称为经验熵和经验条件熵。信息增益表示得知特征XXX的信息,而使得类YYY的信息的不确定性减少的程度。

信息增益:
特征AAA对训练数据集DDD的信息增益g(D,A)g(D,A)g(D,A),定义为集合DDD的经验熵H(D)H(D)H(D)与特征AAA给定条件下DDD的经验条件熵H(D∣A)H(D|A)H(D∣A)之差,即g(D,A)=H(D)−H(D∣A)g(D,A)=H(D)-H(D|A)g(D,A)=H(D)−H(D∣A)

信息增益的算法
输入:训练数据集D和特征A;
输出:特征A对训练数据集D的信息增益g(D,A).
(1)计算数据集D的经验熵H(D)
H(D)=−∑k=1K∣Ck∣∣D∣log2∣Ck∣∣D∣H(D)=-\sum_{k=1}^K{{|C_k|}\over{|D|}}log_2{{|C_k|}\over{|D|}}H(D)=−k=1∑K​∣D∣∣Ck​∣​log2​∣D∣∣Ck​∣​
(2)计算特征A对数据集D的经验条件熵H(D|A)
H(D∣A)=∑i=1n∣Di∣∣D∣H(Di)H(D|A)=\sum_{i=1}^n{{|D_i|}\over{|D|}}H(D_i)H(D∣A)=i=1∑n​∣D∣∣Di​∣​H(Di​)
(3)计算信息增益
g(D,A)=H(D)−H(D∣A)g(D,A)=H(D)-H(D|A)g(D,A)=H(D)−H(D∣A)

5.2.3 信息增益比

以信息增益作为划分训练数据集的特征,存在偏向于选择取值较多的特征的问题。使用信息增益比可以对这一问题进行校正,这是特征选择的另一准则。
信息增益比
特征A对训练数据集D的信息增益比gR(D,A)g_R(D,A)gR​(D,A)定义为其信息增益g(D,A)g(D,A)g(D,A)与训练数据集DDD关于特征AAA的值的熵HA(D)H_A(D)HA​(D)之比,即gR(D,A)=g(D,A)HA(D)g_R(D,A)={{g(D,A)}\over{H_A(D)}}gR​(D,A)=HA​(D)g(D,A)​其中,HA(D)=−∑i=1n∣Di∣∣D∣log2∣Di∣∣D∣H_A(D)=-\sum_{i=1}^n{{|D_i|}\over{|D|}}log_2{{|D_i|}\over{|D|}}HA​(D)=−i=1∑n​∣D∣∣Di​∣​log2​∣D∣∣Di​∣​,n是特征A取值的个数。

5.3 决策树的生成

5.3.1 ID3算法

ID3算法的核心是在决策树各个结点上应用信息增益准则选择特征,递归地构建决策树。具体方法是:从根结点开始,对结点计算所有可能的特征的信息增益,选择信息增益最大的特征作为结点的特征,由该特征的不同取值建立子结点;再对子结点递归地调用以上方法,构建决策树;直到所有特征的信息增益很小或没有特征可以选择为止,最后得到一棵决策树。ID3相当于用极大似然法进行概率模型的选择。

ID3算法
输入:训练集DDD,特征集AAA,阈值ϵ\epsilonϵ
输出:决策树TTT
(1)若DDD中所有实例属于同一类CkC_kCk​,则TTT为单结点树,并将类CkC_kCk​作为该结点的类标记,返回TTT
(2)若A=∅A=\varnothingA=∅,则TTT为单结点树,并将DDD中实例数最大的类CkC_kCk​作为该结点的类标记,返回TTT
(3)否则,否则按照信息增益的算法,计算AAA中各特征对DDD的信息增益,选择信息增益最大的特征AgA_gAg​
(4)如果AgA_gAg​的信息增益小于阈值ϵ\epsilonϵ,则置TTT为单结点树,并将DDD中实例数最大的类CkC_kCk​作为该结点的类标记,返回TTT
(5)否则,对AgA_gAg​的每一可能值aia_iai​,依Ag=aiA_g=a_iAg​=ai​将DDD分割为若干非空子集DiD_iDi​,将DiD_iDi​中实例数最大的类作为标记,构建子结点,由结点及其子结点构成树TTT,返回TTT
(6)对第iii个子结点,以DiD_iDi​为训练集,以A−{Ag}A-\{A_g\}A−{Ag​}为特征集,递归地调用(1)~(5),得到子树TiT_iTi​,返回子树TiT_iTi​

5.3.1 C4.5算法

C4.5算法与ID3算法相似,C4.5算法对ID3算法进行了改进,C4.5在生成的过程中,用信息增益比来选择特征。
C4.5的生成算法
输入:训练集DDD,特征集AAA,阈值ϵ\epsilonϵ
输出:决策树TTT
(1)若DDD中所有实例属于同一类CkC_kCk​,则TTT为单结点树,并将类CkC_kCk​作为该结点的类标记,返回TTT
(2)若A=∅A=\varnothingA=∅,则TTT为单结点树,并将DDD中实例数最大的类CkC_kCk​作为该结点的类标记,返回TTT
(3)否则,否则按照信息增益的算法,计算AAA中各特征对DDD的信息增益,选择信息增益最大的特征AgA_gAg​
(4)如果AgA_gAg​的信息增益比小于阈值ϵ\epsilonϵ,则置TTT为单结点树,并将DDD中实例数最大的类CkC_kCk​作为该结点的类标记,返回TTT
(5)否则,对AgA_gAg​的每一可能值aia_iai​,依Ag=aiA_g=a_iAg​=ai​,将DDD分割为子集若干非空DiD_iDi​,将DiD_iDi​中实例数最大的类作为标记,构建子结点,由结点及其子结点构成树TTT,返回TTT
(6)对第iii个子结点,以DiD_iDi​为训练集,以A−{Ag}A-\{A_g\}A−{Ag​}为特征集,递归地调用(1)~(5),得到子树TiT_iTi​,返回子树TiT_iTi​

5.4 决策树的剪枝

决策树生成算法递归地产生决策树,直到不能继续下去为止,这样产生的决策树往往对训练数据的分类很准确,但对未知的测试数据却没有那么准确,即出现过拟合现象。过拟合的原因在于学习时过多的考虑如何提高对训练数据的正确分类,从而构造出过于复杂的决策树。解决这个问题的办法是考虑决策树的复杂度,对已生成的决策树进行简化。

在决策树学习中,将已生成的树进行简化的过程称为剪枝(Pruning)。具体地,剪枝从已生成的树上裁掉一些子树或叶子结点,并将其根结点或父结点作为新的叶结点,从而简化分类树模型。

树的剪枝算法
输入:生成算法产生的整个树TTT,参数α\alphaα
输出:修剪后的子树TαT_{\alpha}Tα​
(1)计算每个结点的经验熵
(2)递归地从树的叶结点向上回缩

设计一组叶结点回缩到其父结点之前,与之后的整体树分别为TB与TAT_B与T_ATB​与TA​,其对应的损失函数分别是Cα(TB)与Cα(TA)C_{\alpha}(T_B)与C_{\alpha}(T_A)Cα​(TB​)与Cα​(TA​),如果Cα(TB)≤Cα(TA)C_{\alpha}(T_B)\le C_{\alpha}(T_A)Cα​(TB​)≤Cα​(TA​)则进行剪枝,即将其父结点变为新的叶结点。
(3)返回(2)直至不能继续为止,得到损失函数最小的子树TαT_{\alpha}Tα​

5.5 CART算法

  • 分类与回归树(CART),模型由Breiman等人在1984年提出,是应用广泛的决策树学习方法。CART同样由特征选择、树的生成及剪枝组成,既可以用于分类也可以用于回归。
  • CART是在给定输入随机变量X的条件下,输出随机变量Y的条件概率分布的学习方法。假设决策树是二叉树,内部结点特征的取值为是和否,左分支的取值为是,右分支的取值为否。这样的决策树等价于递归地二分每个特征,将输入空间即特征空间划分为有限个单元,并在这些单元上确定预测的概率分布,也就是在输入给定的条件下,输出的条件概率分布。
  • CART算法由以下两步组成:
    (1)决策树生成:基于训练数据集生成决策树,生成的决策树要尽量大。
    (2)决策树剪枝:用验证数据集对已生成的树进行剪枝并选择最优子树,这时用损失函数最小作为剪枝的标准。

5.5.1 CART生成

1. 回归树的生成

最小二乘回归树生成算法
输入:训练数据集DDD
输出:回归树f(x)f(x)f(x)
在训练数据集所在的输入空间中,递归地将每个区域划分为两个子区域,并决定每个子区域上的输出值,构建二叉决策树:
(1)选择最优切分变量jjj与切分点sss,求解minj,s[minc1∑xi∈R1(j,s)(yi−c1)2+minc2∑xi∈R2(j,s)(yi−c2)2]min_{j,s}[min_{c_1}\sum_{x_i\in R_1(j,s)}(y_i-c_1)^2+min_{c_2}\sum_{x_i\in R_2(j,s)}(y_i-c_2)^2]minj,s​[minc1​​xi​∈R1​(j,s)∑​(yi​−c1​)2+minc2​​xi​∈R2​(j,s)∑​(yi​−c2​)2]遍历遍历jjj,对固定的切分变量jjj扫描切分点sss,选择使上式达到最小值的(j,s)(j,s)(j,s)
(2)用选定的(j,s)(j,s)(j,s)划分区域并决定相应的输出值
(3)继续对两个子区域调用步骤(1)(2)直至满足停止条件

(4)将输入空间划分为M个区域R1,R2,⋯,RMR_1,R_2,\cdots,R_MR1​,R2​,⋯,RM​,生成决策树f(x)=∑m=1Mc^mI(x∈Rm)f(x)=\sum_{m=1}^M\hat c_mI(x\in R_m)f(x)=m=1∑M​c^m​I(x∈Rm​)

2. 分类树的生成

  • 分类树用基尼指数选择最优特征,同时决定该特征的最优二值切分点
  • 二类分类中基尼指数、熵之半和分类误差率的关系

5.5.2 CART剪枝

  • CART剪枝算法从完全生长的决策树的底端减去一些子树,使决策树变小(模型变简单),从而能够对未知数据有更准确的预测。CART剪枝算法由两步组成:首先,从生成算法产生的决策树T0T_0T0​底端开始不断剪枝,直到T0T_0T0​的根结点,形成一个子树序列{T0,T1,⋯,Tn};\{T_0,T_1,\cdots,T_n\};{T0​,T1​,⋯,Tn​};然后,通过交叉验证法在独立的验证数据集上,对子树序列进行测试,从中选择最优子树。

1. 剪枝,形成一个子树序列
2.在剪枝得到的子树序列中通过交叉验证选取最优子树

本章概要

  1. 分类决策树模型是表示基于特征对实例进行分类的树形结构。决策树可以转换成一个if-then规则的集合,也可以看作是定义在特征空间划分上的类的条件概率分布。
  2. 决策树学习旨在构建一个与训练数据拟合很好,并且复杂度小的决策树。因为从可能的决策树中直接选取最优决策树是NP完全问题。现实中采用启发式方法学习次优的决策树。决策树学习算法包括3个部分:特征选择、树的生成、树的剪枝。常用的方法有ID3C4.5CART
  3. 特征选择的目的在于选取对训练数据能够分类的特征。特征选择的关键是其准则。常用的准则如下:
    (1)样本集合DDD对特征AAA的信息增益(ID3)
    g(D,A)=H(D)−H(D∣A)g(D,A)=H(D)-H(D|A)g(D,A)=H(D)−H(D∣A)
    H(D)=−∑k=1K∣Ck∣∣D∣log2∣Ck∣∣D∣H(D)=-\sum_{k=1}^K{{|C_k|}\over{|D|}}log_2{{|C_k|}\over{|D|}}H(D)=−k=1∑K​∣D∣∣Ck​∣​log2​∣D∣∣Ck​∣​
    H(D∣A)=∑i=1n∣Di∣∣D∣H(Di)H(D|A)=\sum_{i=1}^n{{|D_i|}\over{|D|}}H(D_i)H(D∣A)=i=1∑n​∣D∣∣Di​∣​H(Di​)
    其中H(D)H(D)H(D)是数据集DDD的熵,H(Di)H(D_i)H(Di​)是数据集DiD_iDi​的熵,H(D∣A)H(D|A)H(D∣A)是数据集DDD对特征AAA的条件熵。DiD_iDi​是DDD中特征AAA取第iii个值的样本子集,CkC_kCk​是DDD中属于第kkk类的样本子集。nnn是特征AAA取值,KKK是类的个数。
    (2)样本集合DDD对特征AAA的信息增益比(C4.5)
    gR(D,A)=g(D,A)HA(D)g_R(D,A)={{g(D,A)}\over{H_A(D)}}gR​(D,A)=HA​(D)g(D,A)​
    其中,g(D,A)g(D,A)g(D,A)是信息增益,HA(D)H_A(D)HA​(D)是DDD关于特征AAA的值的熵。
    (3)样本集DDD的基尼指数(CART)
    Gini(D)=1−∑k=1K(∣Ck∣∣D∣)2Gini(D)=1-\sum_{k=1}^K({{|C_k|}\over{|D|}})^2Gini(D)=1−k=1∑K​(∣D∣∣Ck​∣​)2
    特征A条件下集合DDD的基尼指数:
    Gini(D,A)=∣D1∣∣D∣Gini(D1)+∣D2∣∣D∣Gini(D2)Gini(D,A)={{|D_1|}\over{|D|}}Gini(D_1)+{{|D_2|}\over{|D|}}Gini(D_2)Gini(D,A)=∣D∣∣D1​∣​Gini(D1​)+∣D∣∣D2​∣​Gini(D2​)
  4. 决策树的生成。通常使用信息增益最大、信息增益比最大或基尼指数最小作为特征选择的准则。决策树的生成往往通过计算信息增益或其他指标,从根结点开始,递归地产生决策树。这相当于用信息增益或其他准则不断地选取局部最优的特征,或将训练集分割为能够基本正确分类的子集。
  5. 决策树的剪枝。由于生成的决策树存在过拟合问题,需要对它进行剪枝,以简化学到的决策树。决策树的剪枝,往往从已生成的决策树上,剪掉一些叶结点或叶结点以上的子树,并将其父结点或根结点作为新的叶结点,从而简化生成的决策树。

机器学习理论《统计学习方法》学习笔记:第五章 决策树相关推荐

  1. 统计学习方法 学习笔记(五):支持向量机(下)

    通过支持向量机(上)和支持向量机(中)的介绍,对支持向量机应该有点感性的认识啦!在这个学习笔记中,来继续探寻带核函数的支持向量机(解决如下图所示的问题) 对解线性分类问题,线性分类支持向量机是一种非常 ...

  2. 《统计学习方法(第二版)》学习笔记 第五章 决策树

    决策树 - ID3.C4.5.CART 对于决策树的学习,无论是ID3.C4.5和CART分类树还是CART回归树,其实都需要重点关注几个点: 数据集确定性的评价指标(信息增益.信息增益比.基尼指数. ...

  3. Programming Entity Framework-dbContext 学习笔记第五章

    ### Programming Entity Framework-dbContext 学习笔记 第五章 将图表添加到Context中的方式及容易出现的错误 方法 结果 警告 Add Root 图标中的 ...

  4. 《Go语言圣经》学习笔记 第五章函数

    <Go语言圣经>学习笔记 第五章 函数 目录 函数声明 递归 多返回值 匿名函数 可变参数 Deferred函数 Panic异常 Recover捕获异常 注:学习<Go语言圣经> ...

  5. 统计学习方法 学习笔记(1)统计学习方法及监督学习理论

    统计学习方法及监督学习理论 1.1.统计学习 1.1.1.统计学习的特点 1.1.2.统计学习的对象 1.1.3.统计学习的目的 1.1.4.统计学习的方法 1.1.5.统计学习的研究 1.1.6.统 ...

  6. 逻辑斯蒂回归_逻辑斯蒂回归详细解析 | 统计学习方法学习笔记 | 数据分析 | 机器学习...

    本文包括: 重要概念 逻辑斯蒂回归和线性回归 二项逻辑斯谛回归模型 逻辑斯蒂回顾与几率 模型参数估计 多项逻辑斯谛回归 其它有关数据分析,机器学习的文章及社群 1.重要概念: 在正式介绍逻辑斯蒂回归模 ...

  7. 统计学习方法 读书笔记(五)

    读书笔记仅供个人学习使用 本文主要参考书籍为<统计学习方法>(李航)第二版 参考 Sunning_001的博客 决策树 决策树的定义 if-then 的理解 条件概率分布的理解 决策树学习 ...

  8. 统计学习方法 学习笔记(十):决策树

    这一个学习笔记将要了解决策树,在研一上机器学习这门课的时候,老师在讲到这一节的时候,举了一个例子我现在还能记得:你们坐在这里上课,就像这个决策树一样,在你人生中的每一个重要结点,你都做出了选择,经过多 ...

  9. 2022 最新 Android 基础教程,从开发入门到项目实战【b站动脑学院】学习笔记——第五章:中级控件

    第 5 章 中级控件 本章介绍App开发常见的几类中级控件的用法,主要包括:如何定制几种简单的图形.如何使用几种选择按钮.如何高效地输入文本.如何利用对话框获取交互信息等,然后结合本章所学的知识,演示 ...

  10. muduo学习笔记 - 第五章 高效的多线程日志

    第五章 高效的多线程日志 日志有两种意思: 诊断日志 交易日志 本章讲的是前一种日志,文本的供人阅读的日志,通常用于故障诊断和追踪,也可用于性能分析. 日志通常要记录: 收到的每条消息的id(关键字段 ...

最新文章

  1. Android应用资源---布局资源类型(Layout)
  2. 分享Kali Linux 2016.2第49周虚拟机
  3. 常用HiveQL总结
  4. 计算机专业英语06章在线测试,《计算机专业英语》第06章在线测试.doc
  5. mysql dba系统学习(2)了解mysql的源码目录及源文件
  6. 形象解释Momentum
  7. lol游戏挂机软件_六小时封停警告!lol手游海外服挂机惩罚力度太大引玩家吐槽...
  8. 3. PDOStatement 对象
  9. [AHOI 2012]树屋阶梯
  10. 华为修改优先级命令_华为交换机配置命令---转
  11. declares(declares是什么意思)
  12. EXCEL无法插入公式
  13. 使用scrapy刷博客访问量(傻瓜式)
  14. 高含盐废水处理资源化——双极膜电渗析
  15. 图片·21312312
  16. CornerNet,CenterNet关键代码解读: kp,_decode,left pooling
  17. latex参考文献居中_LaTeX中参考文献管理以及注意事项
  18. CentOS的自动化安装光盘制作 (详细流程)
  19. Sentinel的学习
  20. 新手学习大数据技术如何入门?

热门文章

  1. 【共享单车】—— React后台管理系统开发手记:权限设置和菜单调整(未完)...
  2. Airtest自动化测试工具介绍
  3. 镜像公测招募啦!!!用镜像开通云服务器,限时免费体验!!
  4. 在日期格式化的时候提示错误:Tostring没有采用一个参数的重载
  5. 【C】——常用C时间库函数
  6. 在 windows 命令行下快速检测与排除网络故障
  7. MFC 中屏蔽CDialog类窗体处理ESC和ESCAPE按键
  8. 让人生成功的49个细节
  9. 文件上传服务器经常超时,解决Tomcat文件上传超时问题.
  10. oracle自定义函数获取省份,oracle 自定义函数 方法 基本例子