精华内容
下载资源
问答
  • 2022-01-21 15:00:53

    经过最近这几年各行各业和权威媒体机构的宣导以及“中国智能制造2025”的不断深化,数字化、智能制造在各行业的推进,印刷MES管理系统的概念在印刷相关从业者心中也变得越来越清晰。

     MES生产执行系统是一套面向制造企业车间执行层的生产信息化管理系统,是位于上层的计划管理系统(ERP)与底层的工业控制系统(基于PLC)之间的执行层。MES管理系统作为制造执行系统,既是对ERP计划及车间现场管理的实时反馈及响应,更是制造执行过程中人、机、料、法、环等资源相互作用、相互配置的最优方案监控,可以让企业获得更多、更有利、更实用的生产制造数据。在这个过程当中,提升效率和质量,降低风险就是MES系统的核心应用价值。

    一、及时响应

    ERP管理系统中的生产任务进入到车间MES管理系统派工管理中,MES管理系统可以及时准确采集数据包括车间现场手工采集和自动采集,不管是哪种数据采集方式都会比在ERP系统中更高效。MES系统的派工管理和物料管理能够让仓库和车间内部物流提前准备好,统筹规划好准备时间和上机时间,让上下工序无缝衔接,当计划和实际存在一定偏差时,MES管理系统派工在现场便可以迅速的调整,从而实现生产车间现场物流、数据流、信息流的统一运转。

    设备对接数据采集除了可以降低人为因素造成的数据误差,能最大程度减少在工序衔接、物料衔接过程中带来的人为收发错误及核对时间。MES管理系统的看板系统可使现场汇总分析的数据可视化,让管理层及时了解情况,迅速响应并做出相应决策。

    通过应用基于MES系统的工序计划详细调度,实现车间现场生产管理的柔性化、智能化、数字化。可以提升制造现场的管理水平,优化工艺流程,改善产品质量,实现精益生产,降低能源损耗,减少库存,降低成本等,并给管理人员及领导层提供决策支持,以便能够对市场变化快速准确地做出反应。

    二、数据自动收集

    数据采集很多人都会认为是智能化的范畴,其实这仅仅是实现自动化的基础,数据采集体系包括:生产数据采集(产量等),环境数据采集(PH值、粉尘、车间温度等),质量数据采集(首检数据、巡检数据、自动品检设备数据等),设备状态数据采集(开机、故障、维修、停机等),设备物理参数数据采集(速度、压力、温度等),考勤数据采集(人脸识别、打卡机、指纹机等)。MES系统能够收集到的信息全面完整,设备对接加一定的人工操作,即可实现自动收集。

    MES制造管理系统除能及时提供更详实的资源可用量信息,以便于向ERP进行更可行的资源计划,同时,也使有关人员不仅可及时了解到作业效率,资源效率等实际状况,还可以对作业中隐藏的问题,运作效率改善等进行及时的处理和更正。也具有更高的可操作性,可以极大地提高生产过程的作业效率和作业性能。

    三、智能精准

    将收集到的数据进行汇总、分析、自我学习才能称得上智能,而这就需要借助BI平台来分析数据结果、追踪产生原因,让经验数据有效转化为知识库。目前,这一部分在印刷行业还处在探索阶段,但在其它很多行业已经做得很好,不防跳出印刷行业来看印刷,大数据分析功能,建立在数字车间和MES系统完善的基础之上。

    工业智能化的程度是代表智能工厂的发展高度。物联网所代表的智能工厂、智能生产是以MES系统的发展的必经阶段。因此无论是现在还是将来,智能工厂应该完全包括MES系统,MES系统作为工业4.0 的核心,成为目前企业发展的必经之路。

    原文:印刷行业中,MES管理系统的功能应重点优化这三个方面icon-default.png?t=M0H8https://www.gdblue.com/q_news/shownews.php?lang=cn&id=604

    更多相关内容
  • 决策树的种常见算法

    千次阅读 2020-08-11 18:32:35
    决策树用途&组成构造算法1. 特征选择metricID3:信息增益定义使用场景例子...决策树是一监督学习模型,可用于分类和回归,它是一由内节点和叶节点构成的树型结构。每内节点对应了一关于某种特征的测试(Dec

    用途&组成

    决策树是一个监督学习模型,可用于分类和回归,它是一个由内节点和叶节点构成的树型结构。每个内节点对应了一个关于某种特征的测试(Decision),通过测试,可以把样本分开(split)。最后位于同一叶子节点的样本被分为某一类。

    • root:
    • node:对某一特征的条件测试, i f ( f e a t u r e i ⋅ ⋅ ⋅ ⋅ ) if(feature_i····) if(featurei)
    • leaf:最终的决策结果。

    构造算法

    决策树的构造有三个重要的步骤:

    1. 特征选择
    2. 决策树生成
    3. 剪枝
      接下来按照这三个步骤一一阐述。

    1. 特征选择

    构造决策树时,一个首先需要考虑的问题是选择哪一个特征来作为划分样本的依据。为了比较不同的特征间的优劣,需要设计一个metric来衡量它们的performance。常用到的metric有三种:

    • 信息增益
    • 信息增益比
    • Gini指数(纯净度)

    metric

    ID3:信息增益

    定义
    • 熵(Entropy):事物的不确定性,越不确定,熵越大。一个随机变量X的熵的计算如下:
      E ( X ) = ∑ X = 1 n −   p i   l o g ( p i ) E(X)=\sum_{X=1}^{n}-\ p_i\ log(p_i) E(X)=X=1n pi log(pi)
      X = 1... n : X=1...n: X=1...n:随机变量X有n种不同的取值
      p i : p_i: pi每种取值对应的可能性为 p i p_i pi
      随机变量均匀分布时,熵达到最大。即均匀分布的不确定性最强。而n类平均分布的熵会小于n+1类平均分布的熵。
      在这里插入图片描述

    • 联合熵:随机变量X与Y的联合熵
      H ( X , Y ) = ∑ x i ∈ X ∑ y j ∈ Y −   p ( x i , y j )   l o g ( p ( x i , y j ) ) = ∑ x i ∈ X ∑ y j ∈ Y −   p ( x i , y j )   l o g ( p ( x i ∣ y j ) p ( y j ) ) = − ∑ x i ∈ X ∑ y j ∈ Y   p ( x i , y j )   l o g ( p ( y j ) ) − ∑ x i ∈ X ∑ y j ∈ Y   p ( x i , y j )   l o g ( p ( x i ∣ y j ) ) = − ∑ y j ∈ Y ∑ x i ∈ X   p ( x i , y j )   l o g ( p ( y j ) ) − ∑ x i ∈ X ∑ y j ∈ Y   p ( x i , y j )   l o g ( p ( x i ∣ y j ) ) = − ∑ y j ∈ Y   p ( y j )   l o g ( p ( y j ) ) − ∑ x i ∈ X ∑ y j ∈ Y   p ( x i , y j )   l o g ( p ( x i ∣ y j ) ) = H ( Y ) + H ( X ∣ Y ) = H ( X ) + H ( Y ∣ X ) \begin{aligned} H(X,Y)&=\sum_{x_i\in X}\sum_{y_j\in Y}-\ p(x_i,y_j)\ log(p(x_i,y_j))\\ &=\sum_{x_i\in X}\sum_{y_j\in Y}-\ p(x_i,y_j)\ log(p(x_i|y_j)p(y_j))\\ \\ &=-\sum_{x_i\in X}\sum_{y_j\in Y}\ p(x_i,y_j)\ log(p(y_j))-\sum_{x_i\in X}\sum_{y_j\in Y}\ p(x_i,y_j)\ log(p(x_i|y_j))\\ \\ &=-\sum_{y_j\in Y}\sum_{x_i\in X}\ p(x_i,y_j)\ log(p(y_j))-\sum_{x_i\in X}\sum_{y_j\in Y}\ p(x_i,y_j)\ log(p(x_i|y_j))\\ \\ &=-\sum_{y_j\in Y}\ p(y_j)\ log(p(y_j))-\sum_{x_i\in X}\sum_{y_j\in Y}\ p(x_i,y_j)\ log(p(x_i|y_j))\\ \\ &=H(Y)+H(X|Y) \\ &=H(X)+H(Y|X) \\ \end{aligned} H(X,Y)=xiXyjY p(xi,yj) log(p(xi,yj))=xiXyjY p(xi,yj) log(p(xiyj)p(yj))=xiXyjY p(xi,yj) log(p(yj))xiXyjY p(xi,yj) log(p(xiyj))=yjYxiX p(xi,yj) log(p(yj))xiXyjY p(xi,yj) log(p(xiyj))=yjY p(yj) log(p(yj))xiXyjY p(xi,yj) log(p(xiyj))=H(Y)+H(XY)=H(X)+H(YX)

    • 条件熵:已知一个变量Y之后,剩下的变量X的不确定性
      H ( X ∣ Y ) = ∑ x i ∈ X ∑ y j ∈ Y −   p ( x i , y j )   l o g ( p ( x i ∣ y j ) ) = ∑ y j ∈ Y p ( y j ) H ( X ∣ y j ) \begin{aligned} H(X|Y)&=\sum_{x_i\in X}\sum_{y_j\in Y}-\ p(x_i,y_j)\ log(p(x_i|y_j)) \\ &= \sum_{y_j\in Y}p(y_j)H(X|y_j) \end{aligned} H(XY)=xiXyjY p(xi,yj) log(p(xiyj))=yjYp(yj)H(Xyj)

    • 信息增益:
      已知一个变量以后,使得另外一个变量的不确定性减少,减少的幅度即为信息增益,也被称为互信息。
      I ( X , Y ) = H ( X ) − H ( X ∣ Y ) I(X,Y)=H(X)-H(X|Y) I(X,Y)=H(X)H(XY)
      信息增益越大,说明变量Y带来的信息越多,即越有用。

    使用场景

    信息增益可以用来衡量使用某特征来划分样本以后,样本的不确定性与划分前相比,下降的幅度。下降的越多,说明生成的划分越确定,即被划分到同一节点的样本越可能属于同一类别。
    信息增益可以很好地选出最符合目标的特征,即:经过此特征划分后,不同类别的样本可以被分开。
    计算公式:
    I ( D , A ) = H ( D ) − H ( D ∣ A ) I(D, A) = H(D)-H(D|A) I(D,A)=H(D)H(DA)
    D : D: D:原始的样本分布。
    A : A: A:某一特征测试。
    D ∣ A : D|A: DA:经过特征测试后,新的样本分布。

    例子

    原始有两类样本,类0的样本数为10,类1的样本数为5。现在有两个特征,特征A有三个取值,划分之后A1的样本分布为4:0,A2为4:1,A3为2:4。特征B有两个取值,划分之后B1的样本分布为8:2,B2为2:3。
    H ( D ) = − 10 15 l o g ( 10 15 ) − 5 15 l o g ( 5 15 ) = 0.92 H(D)=-\frac{10}{15}log(\frac{10}{15})-\frac{5}{15}log(\frac{5}{15})=0.92 H(D)=1510log(1510)155log(155)=0.92
    H ( D ∣ A ) = − 4 15 ( 1 ∗ l o g ( 4 4 ) + 0 ) − 5 15 ( 4 5 ∗ l o g ( 4 5 ) + 1 5 ∗ l o g ( 1 5 ) ) − 6 15 ( 2 6 ∗ l o g ( 2 6 ) + 4 6 ∗ l o g ( 4 6 ) ) = 0.61 H(D|A)=-\frac{4}{15}(1*log(\frac{4}{4})+0)-\frac{5}{15}(\frac{4}{5}*log(\frac{4}{5})+\frac{1}{5}*log(\frac{1}{5}))-\frac{6}{15}(\frac{2}{6}*log(\frac{2}{6})+\frac{4}{6}*log(\frac{4}{6}))=0.61 H(DA)=154(1log(44)+0)155(54log(54)+51log(51))156(62log(62)+64log(64))=0.61
    H ( D ∣ B ) = − 10 15 ( 8 10 ∗ l o g ( 8 10 ) + 2 10 ∗ l o g ( 2 10 ) ) − 5 15 ( 2 5 ∗ l o g ( 2 5 ) + 3 5 ∗ l o g ( 3 5 ) ) = 0.8 H(D|B)=-\frac{10}{15}(\frac{8}{10}*log(\frac{8}{10})+\frac{2}{10}*log(\frac{2}{10}))-\frac{5}{15}(\frac{2}{5}*log(\frac{2}{5})+\frac{3}{5}*log(\frac{3}{5}))=0.8 H(DB)=1510(108log(108)+102log(102))155(52log(52)+53log(53))=0.8
    I ( D , A ) = 0.92 − 0.61 = 0.31 I(D,A)=0.92-0.61=0.31 I(D,A)=0.920.61=0.31
    I ( D , B ) = 0.92 − 0.8 = 0.12 I(D,B)=0.92-0.8=0.12 I(D,B)=0.920.8=0.12
    因此可知,在这个例子中,选择特征A能使样本更好地被分类。直观地观察A与B的划分后分布也可以粗略看出这一点。

    缺点
    1. 样本不足的情况下,ID3的信息增益法会倾向于选择取值更多的特征。
      当样本量不足时,对于取值多的特征来说,其每种划分下的样本会比取值少的特征少。而根据大数定理,当样本数目不足时,用每个划分中的各类样本数量来估计各类的出现概率是不准确的。会造成估计概率和真实概率间的方差很大。举个例子,投掷硬币,正反面出现的概率应为0.5:0.5,但因为投掷次数不多(此处极端假设2次),最后得到的正反面次数是2:0。若在这种样本不足的情况下,用样本数目来近似每类的出现概率,则会得到1:0的结果,计算出的信息增益会偏大。即,估计出的概率分布更不均匀,导致其对应的熵偏小,信息增益偏大。
      当然,在样本充足的情况下,ID3不会有这样的倾向。
      样本不足 → 估计值的方差较大 → 估计出的分布更不均匀 → 熵偏小 → 信息增益偏大 \text{样本不足}\rightarrow \text{估计值的方差较大}\rightarrow\text{估计出的分布更不均匀}\rightarrow\text{熵偏小}\rightarrow\text{信息增益偏大} 样本不足估计值的方差较大估计出的分布更不均匀熵偏小信息增益偏大

    2. 无法处理数值特征。
      可以看到,ID3算法计算信息增益时,只考虑了类别特征的计算方法,而对于像身高,体重等连续的数值特征却没有涵盖。

    3. 没有考虑特征缺失值的处理。

    4. 算法里没有考虑树的过拟合问题。

    C4.5: 信息增益比

    C4.5针对ID3的缺点做了很多优化,其中最值得一提的是用信息增益比来代替单纯的信息增益,作为特征选择的衡量标准。信息增益比能缓解在样本不足的情况下,ID3对取值更多的特征的偏好。C4.5还通过离散化连续数值特征,使得信息增益比也可以在这些特征上使用。C4.5也加入了处理缺失值的方法,以及添加了简单的正则化剪枝,以缓解过拟合的问题。

    定义
    1. 特征熵:特征熵可以用来衡量样本在使用某特征划分后的分布的不确定性。取值数目越多,分割后各取值得到的样本分布得越均匀,则特征熵越大。可以用它作为分母,来惩罚取值多的特征,以纠正ID3的偏好。
      H A ( D ) = − ∑ i = 1 n ∣ D i ∣ ∣ D ∣ l o g ( ∣ D i ∣ ∣ D ∣ ) H_A(D)=-\sum_{i=1}^n\frac{\lvert{D_i}\rvert }{\lvert D \rvert}log(\frac{\lvert{D_i}\rvert }{\lvert D \rvert}) HA(D)=i=1nDDilog(DDi)
      i : i: i:特征A的n种取值。
      ∣ D ∣ : \lvert{D}\rvert: D分割前的总样本数。
      ∣ D i ∣ : \lvert{D_i}\rvert: Di每个划分的样本的数目。

    2. 信息增益比:
      I R ( D , A ) = I ( D , A ) H A ( D ) I_R(D,A)=\frac{I(D,A)}{H_A(D)} IR(D,A)=HA(D)I(D,A)
      R : R: R: ratio.
      H A ( D ) : H_A(D): HA(D): 特征熵,用于平衡特征取值数目对信息增益带来的影响。

    连续数值特征的处理(转化为二分类寻找阈值的问题)

    假设存在一个连续特征A,在样本中,其取值分别为 a 1 , a 2 , . . . a n a_1,a_2,...a_n a1,a2,...an。要处理这个特征,容易想到的思路是先将它离散化,再寻找最优分割:

    1. 特征A的取值排序:
      假设排序结果从小到大为 a 1 , a 2 , . . . a n a_1,a_2,...a_n a1,a2,...an
    2. 设置候选分割点:
      使用相邻数值计算均值,作为待检测的分割点。即n个样本,排序分割后会产生(n-1)个分割点。
    3. 选择最优分割点:
      每个分割点都把样本分为了两类,依据信息增益比的计算公式计算每个分割点对应的信息增益比。选择信息增益比最大的点作为此特征最终的分割点。
    解决过拟合问题:剪枝
    • 预剪枝
      设置一定的early stop的条件,当满足条件后就不再继续分割。一般使用的条件如下:
      • 所有特征均已使用。
      • 分割后样本数小于阈值。
      • 分割后准确率反而降低。
    • 后剪枝(子树替代法)
      在整个决策树构建完成后,自底向上检验每棵子树是否能用叶子节点替代。如果子树的错误率大于使用单一的叶子节点的错误率,则替代
      但这个方法存在着一个很大的问题,即如何准确估计子树的错误率。在计算错误率时,若使用训练集来计算,则所得的错误率一般会比真实的值小。为了纠正这样的偏差,有三种解决的方法:
      • 使用验证集来计算子树的错误率。
      • 悲观计算:人为地增加子树的错误样本数。
      • 用confidence level来估计真实的错误率的区间。
        这里讲一下第三种方法:
        f:用训练集估计的错误率, = 错 误 样 本 数 量 样 本 总 数 量 =\frac{错误样本数量}{样本总数量} =
        p :真实的错误率
        可知: p = f ± ( z ∗ f ( 1 − f ) N ) p =f\pm(z*\sqrt{\frac{f(1-f)}{N}}) p=f±(zNf(1f) )
        z:某一confidence level下对应的系数。例如:置信区间95%意味着,取均值左右1.96个标准差的范围( ± z ∗ σ \pm z*\sigma ±zσ),100次中有95次,真实的错误率就被包含在这个范围中。
        e:某一confidence level下的真实错误率区间的上限, e = f + ( z ∗ f ( 1 − f ) N ) e=f+(z*\sqrt{\frac{f(1-f)}{N}}) e=f+(zNf(1f) )
        在这里插入图片描述
        如上图所示,f = 2/6, N=6时, p = 0.33 + 0.69 ∗ 0.33 ∗ 0.66 / 6 = 0.33 + 0.13 = 0.46 p = 0.33 + 0.69*\sqrt{0.33*0.66/6}=0.33+0.13=0.46 p=0.33+0.690.330.66/6 =0.33+0.13=0.46
        计算子树的错误率上限时,使用样本数加权平均每个叶子的e。
        如果剪枝后的e更小,则使用单一叶子来替代整个子树。上图例子中,剪枝前e为0.51,剪枝后降低为0.46,因此执行此剪枝。
    • 预剪枝 vs. 后剪枝
      • 预剪枝:
        +可缩短模型训练的时间,降低过拟合的风险
        -可能引起欠拟合问题。虽然某一次分割不会大幅提升准确率,但是按这个分支展开,后续可能会带来性能的提升。预剪枝根据贪心策略不再继续探索某些分支,带来了欠拟合风险。
      • 后剪枝:
        +首先充分探索各种特征及其分割,生成一颗完整的决策树,之后再从下至上,寻找可以通过剪枝来优化的子树,欠拟合风险小
        -消耗更多的计算资源,更加耗时。
    问题
    1. 只能用于分类。
    2. 在选择连续特征时需要排序,熵模型涉及许多对数运算,分割点选择需要轮流计算比较,大量耗费计算资源。

    CART(Classification And Regression Tree):

    • 二叉树,简化决策树的规模,提高树的生成效率,比起ID3和C4.5的多叉树来说,计算规模更小。
    • 可以用作分类和回归:
      • 分类:Gini指数最小化
      • 回归:平方误差最小化(对每一特征生成可能分割+用平方误差选择最优分割)。每一个节点的预测值为属于此节点的所有样本的均值。
    定义
    • Gini指数:衡量一个分割的纯净度。Gini指数越小,说明此分割越纯净,此分割中的绝大部分样本属于同一类。随机抽取两个样本,其类别不一致的概率, 类似于 p(1-p)
      G i n i ( D i ) = ∑ k = 1 m ∣ D k ∣ ∣ D i ∣ ( 1 − ∣ D k ∣ ∣ D i ∣ ) Gini(D_i)=\sum_{k=1}^m\frac{\lvert{D_k}\rvert }{\lvert D_i \rvert}(1-\frac{\lvert{D_k}\rvert }{\lvert D_i \rvert}) Gini(Di)=k=1mDiDk(1DiDk)
      i : i: i:特征A的一个分割。
      m : m: m:一共有m类样本。
      ∣ D i ∣ : \lvert{D_i}\rvert: Di此分割拥有的总样本数。
      ∣ D k ∣ : \lvert{D_k}\rvert: Dk每类的样本的数目。

    • 与熵的关系:
      一阶泰勒展开: l n ( x ) = − 1 + x + o ( x ) ln(x)=-1+x+o(x) ln(x)=1+x+o(x)
      H ( D i ) = − ∑ k = 1 m p k l o g ( p k ) ≈ − ∑ k = 1 m p k ( 1 − p k ) ≈ ∑ k = 1 m ∣ D k ∣ ∣ D i ∣ ( 1 − ∣ D k ∣ ∣ D i ∣ ) \begin{aligned} H(D_i)&=-\sum_{k=1}^m p_k log(p_k) \\ &\approx-\sum_{k=1}^m p_k (1-p_k) \\ &\approx \sum_{k=1}^m\frac{\lvert{D_k}\rvert }{\lvert D_i \rvert}(1-\frac{\lvert{D_k}\rvert }{\lvert D_i \rvert})\\ \end{aligned} H(Di)=k=1mpklog(pk)k=1mpk(1pk)k=1mDiDk(1DiDk)
      Gini指数可以看作是熵的一阶泰勒展开。
      在这里插入图片描述

    • 特征的Gini指数:特征的每个分割的Gini指数的加权平均。
      G i n i ( D ) = ∑ i = 1 n ∣ D i ∣ ∣ D ∣ ∑ k = 1 m ∣ D k ∣ ∣ D i ∣ ( 1 − ∣ D k ∣ ∣ D i ∣ ) = ∑ i = 1 n ∣ D i ∣ ∣ D ∣ G i n i ( D i ) \begin{aligned} Gini(D)&=\sum_{i=1}^n\frac{\lvert{D_i}\rvert }{\lvert D \rvert}\sum_{k=1}^m\frac{\lvert{D_k}\rvert }{\lvert D_i \rvert}(1-\frac{\lvert{D_k}\rvert }{\lvert D_i \rvert}) \\ \\ &=\sum_{i=1}^n\frac{\lvert{D_i}\rvert }{\lvert D \rvert}Gini(D_i) \end{aligned} Gini(D)=i=1nDDik=1mDiDk(1DiDk)=i=1nDDiGini(Di)
      i : i: i:特征A的一个分割。
      n : n: n:特征A一共有n种取值。
      ∣ D ∣ : \lvert{D}\rvert: D总样本的数目。
      ∣ D k ∣ : \lvert{D_k}\rvert: Dk每种分割里的每类的样本数目。

    • 回归问题的特征选择标准:假设最优特征为 a a a,其对应的最优分割为 s s s
      min ⁡ a , s ( min ⁡ c 1 ∑ x i ∈ D 1 ( y i − c 1 ) 2 + min ⁡ c 2 ∑ x i ∈ D 2 ( y i − c 2 ) 2 ) \underset{a,s}{\min}(\underset{c_1}{\min}\sum_{x_i \in D_1}(y_i-c_1)^2+\underset{c_2}{\min}\sum_{x_i \in D_2}(y_i-c_2)^2) a,smin(c1minxiD1(yic1)2+c2minxiD2(yic2)2)
      D 1 : D_1: D1:属于分割1的样本集合。
      D 2 : D_2: D2:属于分割2的样本集合。
      c 1 : c_1: c1:样本集合1的均值,依赖于分割点s的选取。
      c 2 : c_2: c2:样本集合2的均值。
      y i : y_i: yi:样本对应的真实值。

    使用场景
    • 分类树
      • 类别特征
      • 连续数值特征
    • 回归树:
      对于不同类型的特征的处理同上,不同的是衡量特征优劣的metric。先计算叶节点的样本均值,以此均值作为预测值,并计算每个样本的真实值与此预测值之间平方差和作为衡量标准。
    后剪枝:基于代价复杂度
    • 设计一个损失函数,来平衡过拟合(叶节点过多)和欠拟合问题(误差较大):
      C α ( T ) = C ( T ) + α ∣ T ∣ C_\alpha(T)=C(T)+\alpha \lvert{T}\rvert Cα(T)=C(T)+αT
      C ( T ) : C(T): C(T):预测误差,拟合度。
      α : \alpha: α:参数,惩罚复杂模型的力度。
      ∣ T ∣ : \lvert{T}\rvert: T:叶节点数目,模型复杂度,泛化能力。

    • 过程:
      对于每一个内节点 t t t所对应的子树 T t T_t Tt,计算剪枝前后loss的差:
      C α ( T t ) − C α ( t ) = C ( T t ) + α ∣ T t ∣ − C ( t ) − α ∗ 1 = C ( T t ) − C ( t ) + α ( ∣ T t ∣ − 1 ) \begin{aligned} C_\alpha(T_t)-C_\alpha(t) &= C(T_t)+\alpha \lvert{T_t}\rvert-C(t)-\alpha*1 \\ &=C(T_t)-C(t)+\alpha(\lvert{T_t}\rvert-1) \end{aligned} Cα(Tt)Cα(t)=C(Tt)+αTtC(t)α1=C(Tt)C(t)+α(Tt1)
      α \alpha α为0时,对于某一个确定的子树 T t T_t Tt 和叶子 t t t ,一定有 C α ( T t ) < C α ( t ) C_\alpha(T_t)<C_\alpha(t) Cα(Tt)<Cα(t)。但是随着 α \alpha α的逐渐增大,到某一时刻会有 C α ( T t ) ⩾ C α ( t ) C_\alpha(T_t)\geqslant C_\alpha(t) Cα(Tt)Cα(t)。此时虽然叶子的error更大,但由于模型复杂度的惩罚系数大,叶子的最终loss更小。
      对于不同的子树来说,使剪枝前后的loss的关系反转的 α \alpha α也不同。这个临界 α \alpha α越小,说明剪枝前后error的差距越小,且子树的叶子节点越多,也就是越理想的剪枝对象(weakest link)。更形象的解释见下图。
      因此在每一次剪枝中,剪掉临界 α \alpha α最小的那个子树。
      在这里插入图片描述
      在这里插入图片描述
      这个过程之后,得到了每个可能的 α i \alpha_i αi及其对应的最优决策树(完全决策树的内节点数目有限,因此迭代次数也有限)。之后可以使用 Cross-Validation等方法选出最优的 α b e s t \alpha_{best} αbest

    优劣

    CART和ID3一样,没有特征熵来均衡特征取值数目对熵的影响,因此也存在偏向细小分割的问题。

    总结比较

    以上介绍的便是决策树常见的三种算法,它们的不同主要体现在一下几个方面:

    • 使用场景:
      • 分类
      • 回归
    • 使用特征:
      • 类别特征
      • 连续数值特征
    • 算法偏好
      • 取值多,分割细的特征
    • metric:
      • 信息增益
      • 信息增益比
      • Gini指数
    • 剪枝方法:
      • 预剪枝
      • 后剪枝
        • 悲观剪枝(子树替代法)
        • 代价复杂度
    • 填补缺失值
      • 基于有缺失值的样本做特征选择
      • 决定有缺失值的样本属于哪一个划分

    算法分析

    适用场景

    • 样本量:

    C4.5做特征选择时涉及样本排序,分割检测和对数运算,且其本身为多叉树结构,需消耗很多计算资源,适用于小样本。而 CART 本身是一种大样本的统计方法,小样本处理下泛化误差较大。

    • 分类 or 回归
    • 属性取值:
      ID3和CART均会偏好取值多的特征,有此情况的话需考虑C4.5算法

    问题

    过拟合

    • 决策树算法实质上是一个多重选择过程:为存在的n个特征计算分别的score,再选择score最大的特征做测试,加入模型以提高模型的准确度。而这里存在概念的混淆:

      • 特征 i s c o r e i score_{i} scorei的分布:在评价函数与特征种类确定的情况下,与样本集合有关
      • n个特征的 s c o r e m a x 的 分 布 score_{max}的分布 scoremax :与特征的数目有关

      s c o r e i score_{i} scorei s c o r e m a x score_{max} scoremax根本不是同一分布的变量,因此用 s c o r e m a x score_{max} scoremax来代表某一特征的 s c o r e i score_{i} scorei从而进行选择是有问题的,这个推断是不成立的,他不能为未来的预测做任何保证。 s c o r e m a x score_{max} scoremax的分布受特征数目的影响,而决策树在使用时却没有考虑这一点。因此用此方法选择出的特征有可能有噪音。在此举个简单的例子:
      选择一个预测员来预测股票走势,若他14天预测正确11次以上则中选。假设所有来应征的预测员都是骗子,他们都做随机决策,那么一个预测员能正确11次以上,即他中选的概率为0.028。现在假设有n人应征,那么从中至少能选出一人的概率为: 1 − ( 1 − 0.028 ) n 1- (1-0.028)^{n} 1(10.028)n。n为10时,概率为0.253;n为30时,至少选择一人的概率为0.5。
      由此可以看出,每个预测员预测正确11次以上的概率(即 s c o r e i score_{i} scorei),和n个决策员中至少一个正确11次以上的概率(即 s c o r e m a x score_{max} scoremax)是不同的。
      实际上当n很大时, P ( s c o r e i > t h r e s h o l d ) = p P(score_{i} > threshold)=p P(scorei>threshold)=p 是会明显小于 P ( s c o r e m a x > t h r e s h o l d ) = 1 − ( 1 − p ) n P(score_{max} > threshold)=1-(1-p)^n P(scoremax>threshold)=1(1p)n的,当特征很多时,用 s c o r e m a x score_{max} scoremax会高估 s c o r e i score_{i} scorei,即选出来的特征可能包含很多噪音。

    • 决策树是用的是贪婪策略,因此它倾向于寻找局部最优,而不是根据数据的所有信息全局地寻找最优点, 对样本分布非常敏感,样本的改变可能会剧烈影响决策树的结构。

    • 随着决策树的不断生长,叶子节点会越来越多,这也意味着分割的粒度会越来越细。想象极限情况下,可能会为每一个样本分一个叶子节点,即一条决策路径。因此决策树生成的方式,天然决定了它很容易过拟合。

    • 过拟合的解决方案:

      • early stop
      • pruning
      • K-Fold Cross Validation
      • Random Forest

    类别不均衡

    • CART: 先验机制来确定分类阈值,以平衡偏差数据:
      N 1 ( c h i l d ) N t o t a l ( c h i l d ) > N 1 ( p a r e n t ) N t o t a l ( p a r e n t ) \frac{N_1(child)}{N_{total}(child)}>\frac{N_1(parent)}{N_{total}(parent)} Ntotal(child)N1(child)>Ntotal(parent)N1(parent)
      时,child节点才能被标记为类1。即,用父节点中的类别比例来作为分类阈值。仅影响每个节点的分类选择,使得每类数据落在各节点的概率先验相等。

    实现

    算法的分析比较 :https://www.cnblogs.com/pinard/p/6050306.html
    c3为什么倾向于特征多的属性: https://www.zhihu.com/question/22928442
    优化方案:https://blog.csdn.net/xbinworld/article/details/44660339
    信息熵:https://blog.csdn.net/qq280929090/article/details/78135417
    C4.5剪枝:http://www.cs.bc.edu/~alvarez/ML/statPruning.html
    置信区间:https://www.zhihu.com/question/26419030
    Cost-Complexity-Pruning: http://mlwiki.org/index.php/Cost-Complexity_Pruning
    Cost-Complexity-Pruning的原理: https://online.stat.psu.edu/stat508/lesson/11/11.8/11.8.2
    多重选择过程(Multiple Comparisons): https://link.springer.com/content/pdf/10.1023/A:1007631014630.pdf

    展开全文
  • 在变化响应中,DMOEA-DVC分别通过保持,预测和分布性引入策略来重新初始化三个决策变量组。 实验结果:在33个基准DMOPs上将DMOEA-DVC与其他六个典型的DMOEAs进行了比较。实验结果表明,DMOEA-DVC的总体性能优于或...

    阅读论文:A Dynamic Multiobjective Evolutionary Algorithm
    Based on Decision Variable Classification

    (Zhengping Liang , Tiancheng Wu, Xiaoliang Ma, Zexuan Zhu , Member, IEEE,and Shengxiang Yang , Senior Member, IEEE)
    这是2020年发布在IEEE上的一篇文章,主要讲的是基于决策分类的进化算法来解决动态多目标优化问题(DMOPs),由于本人也是才接触多目标进化没多久,学术功底有限,如果有不正确的地方欢迎批评指正!

    前言

    首先提出两个问题
    1、什么是动态多目标优化问题(DMOPs)?
    具有多个互相冲突且随着时间变化的多目标优化问题
    2、动态多目标优化问题和多目标优化问题之间有什么区别呢?
    动态=Dynamic 优化问题是指其目标函数不仅与决策变量有关,而且还会随着时间(环境)动态变化。
    定义多目标问题(MOP)
    在这里插入图片描述
    定义动态多目标问题(DMOP)
    在这里插入图片描述
    X = (x1,x2,…xnt)代表nt维的决策变量向量,主要是新增加了t:离散的时间实例,fmt(x,t)表示x在时间t的第mt个目标函数。nt和mt的值都会随时间变化。F(x,t)代表时间t评估解x的目标函数向量;p和q分别是不等式约束和等式约束的个数;gi(x,t)代表第i个不等式约束;Ωt代表可行的时间空间;

    Abstract–摘要

    现状:目前提出了许多动态多目标进化算法(DMOEAs)来解决DMOPs,主要是通过将多样性引入方法或预测方法与常规多目标进化算法相结合来解决。维持种群收敛性和分布性(Convergence and Diversity)的良好平衡对于DMOEAs的性能至关重要。

    解决方案:提出了一种基于决策变量分类的DMOEA(DMOEA-DVC)。 DMOEA-DVC在静态进化和变化响应阶段分别将决策变量分为两个和三个不同的组。在静态进化中,两个决策变量组使用两种不同的交叉算子来加速收敛,同时保持良好的多样性。在变化响应中,DMOEA-DVC分别通过保持,预测和分布性引入策略来重新初始化三个决策变量组。

    实验结果:在33个基准DMOPs上将DMOEA-DVC与其他六个典型的DMOEAs进行了比较。实验结果表明,DMOEA-DVC的总体性能优于或类似于所比较的算法。

    Introduction–引言

    • 从MOEAs 到 DMOEAs遇到的问题
      多目标进化算法(MOEAs)在各种静态多目标优化问题(MOPs)上都取得了成功。但是,由于在动态环境中缺少快速的变化响应机制,在DMOPs中它们往往会失败。
    • 解决方法
      为了解决DMOPs,近年来已经提出了许多动态MOEAs(DMOEAs)。它们大部分可以被分为多样性引入方法(Diversity introduction approaches)和预测方法(prediction approaches)。

    Diversity introduction approaches–多样性引入方法

    多样性引入方法将一定比例的随机或突变个体引入进化种群以增加种群多样性。多样性的增加可以促进算法更好地适应新环境。但是,由于这些算法主要依靠静态进化搜索来找到引入多样性之后的最优解集,因此收敛速度可能会变慢

    prediction approaches–预测方法

    预测方法采用预测模型来预测在变化的环境中有希望的种群。可以大大提高种群收敛性。然而,大多数预测模型需要一个训练周期,在训练周期中预测模型的性能不能令人满意

    主要问题

    都没有考虑决策变量的不同特征。他们倾向于以相同的方式探索所有决策变量,这在平衡种群多样性和收敛性方面效率较低。

    主要亮点(idea)

    提出了基于决策变量分类(DMOEA-DVC)的DMOEA。分别在静态进化和变化响应阶段,使用两种决策变量分类方法将决策变量分为两个和三个不同的组。根据决策变量分类,将不同的进化算子和变化响应策略相应地应用于不同的组,以增强种群的分布性和收敛性。

    1. 在静态进化和变化响应阶段分别使用两种不同的决策变量分类方法,使算法能够更有效地探索不同的决策空间。
    2. 在静态进化中,引入了一种新的子代生成策略,该策略通过对两种不同类型的决策变量使用特定的交叉算子产生子代来加快种群收敛速度,同时保持算法的种群多样性。
    3. 在变化响应中,提出了一种保持,预测和多样性引入相结合的混合响应策略来处理三种类型的决策变量,从而在不同的动态环境中实现更好的适应性。

    Background–背景

    A、DMOP基础

    基于动态帕累托支配找到动态帕累托最优解或动态帕累托前沿面

    1. 定义1(动态帕累托支配):在时间t给出两个候选解x和y(x,y∈Ω),称x支配y,写为x(t)≺y(t),当且仅当
      在这里插入图片描述
    2. 定义2(动态帕累托最优解集):在时间t的一个动态帕累托最优解集记为PS(t),其中包括所有不被其他解支配的解,如下:在这里插入图片描述
    3. 定义3(动态帕累托前沿面):在时间t的一个动态帕累托最优面记为PF(t),是PS(t)中的解在目标函数空间中的映射,如下:
      在这里插入图片描述
    4. 定义4(多最优值变量):给定一个决策变量i,若PS(t)中存在两个解x,y,并且xi≠yi,xi,yi分别指x,y在决策变量i上的值,则称i有多个最优值,是一个多最优值变量。
    5. 定义5(单最优值变量):给定一个决策变量i,对于PS(t)中任意两个解x,y,他们对应的决策变量i值是一样的,即xi=yi,则称i有单个最优值,是一个单最优值变量。

    根据PF(t)和PS(t)的动态特性,将DMOP分为四种类型

    • 类型I: PS(t)随时间变化,而PF(t)是固定的。
    • 类型II: PS(t)和PF(t)都随时间变化。
    • 类型三:PS(t)是固定的,PF(t)随时间变化。
    • 类型IV: PS(t)和PF(t)都是固定的,但是随着时间的推移问题会改变。

    B、动态多目标进化算法

    1. 动态多目标算法(多样性引入)

    通过看下面这个表格就非常直观,最终通过引入多样性方法可以防止种群陷入局部最优,并且易于实施。在这里插入图片描述

    2. 动态多目标算法之(基于预测的方法)

    在这里插入图片描述
    其中基于预测的方法中,也有很多在PPS算法的基础上,进行一些改进,最终也可以显示出提高收敛速度的能力。

    C、决策变量分类方法

    通过结合多样性引入和基于快速预测的方法来利用两者的优点,提出了一种增强的变化响应策略。

    多样性引入或预测方法可以被视为搜索决策变量最优值的概率模型,大多数现有的DMOEAs都假定所有决策变量都处于相同的概率分布下。在实际的DMOPs中,决策变量的概率分布可能会发生很大变化。通过决策变量分类,可以将决策变量分为不同的组,然后可以将特定的概率搜索模型应用于相应的变量组以获得更好的解。

    在静态中的决策变量分类

    许多基于决策变量分类的MOEAs在静态MOPs上都取得了成功,决策变量扰动会产生大量个体用于分类,并成比例地消耗大量适应性评估。此策略对于静态MOPs效果很好,在静态MOPs中,决策变量的类别不变,并且仅需要分类一次。

    在动态中的决策变量分类

    • Woldesenbet和Yen [51]通过对目标空间变化的平均敏感度来区分决策变量,并以此为基础来重新安置个体。 该方法对于动态单目标优化问题效果很好,但是不适用于DMOP。
    • Xu提出了一种针对DMOP的协作式协同进化算法,其中决策变量被分解为两个子组件,即相对于环境变量t不可分离和可分离的变量。应用两个种群分别协同优化两个子组件。文献中提出的算法在基于环境敏感性可分解决策变量的DMOP上具有优越性,但是,在许多DMOP中可能并非如此。

    在这里插入图片描述

    Framework–框架

    在这里插入图片描述
    具体过程:初始化父代种群P,然后从父代种群中选出一个子代种群P′和一个非支配解的档案A。在每次迭代中,在使用进化算子生成每个子代个体之前,对P使用决策变量分类方法,并将结果记录在布尔向量flag_multi中,其中每个元素指示相应的决策变量是多最优还是单最优变量。DMOEA-DVC可检测到进化过程中的任何潜在变化,如果检测到变化,则将使用变化响应策略,否则,将对个体的不同类型决策变量使用不同的交叉算子生成子代个体,生成子代个体后,更新P和A。在每一次迭代的末尾,从当前父代种群和子代种群的混合中选择一个新的子代种群和一个新的档案。

    A、ClassificationSO–决策变量分类

    在静态进化阶段(算法1第6行)使用决策变量分类,以增加生成高质量子代个体的可能性。
    目标:找到在PF上分布均匀的种群,并尽快收敛到PF
    方法:探索种群中非支配个体的邻居是很有效的
    问题:如果子代的所有决策变量都是在非支配个体的决策变量附近生成的,则种群会陷入局部最优,为了避免这种情况,子代个体中的多最优值变量值应远离父代个体产生。

    • 子代中的多最优变量值应该远离非支配个体产生,以保持良好的多样性。
    • 对于单最优变量,子代个体中的生成值应尽可能接近父代个体中的相应值,以加速收敛。

    关键问题:如何确定多最优值变量和单最优值变量

    提出了一种区分多最优值变量和单最优值变量的近似方法。

    在DMOP中,目标函数可能在某些决策变量上相互冲突。如果两个目标函数在决策变量上发生冲突,则该决策变量被视为具有多个最优值。(这个也很好理解,如果在X=C时存在两个最优的解,那么这两个目标相互冲突)

    因此使用斯皮尔曼等级相关系数(SRCC)来衡量一个变量和一个目标函数之间的相关性。
    在这里插入图片描述
    如果第i个变量的两个目标函数之间存在明显的相关冲突(正相关与负相关),即max(ri1(t),ri2(t),…,rim(t))>0.5α并且min(ri1(t),ri2(t),…,rim(t))<-0.5α(α是预定义的阈值),则将第i个决策变量分类为多最优值变量。否则,第i个决策变量将被视为单最优值变量。

    在这里插入图片描述
    首先计算每个决策变量i与每个目标j之间的SRCC值,然后根据SRCC值将决策变量分为多最优值变量(第10行)或单最优值变量(第12行),然后采取上述对应方案。

    Classification–变化响应中决策变量分类

    在大多数现有的DMOPs中,考虑到环境变化,可以将决策变量分类为相似,可预测和不可预测的变量。

    • 相似 —无需重新初始化
    • 可预测 ----决策变量应基于预测进行重新初始化
    • 不可预测 -----可以通过引入多样性进行重新初始化

    非参数t-test用于评估决策变量的变化与环境变化的相关性

    在这里插入图片描述
    t-testi <=β,其中β是预定义的阈值,则第i个变量被视为无明显变化,也就是说,它是相似的变量,不需要重新初始化。如果t-testi>β,则第i个决策变量被认为具有显著变化,即变量i是可预测的或不可预测的,需要重新初始化。

    上面公式已经区分了相似或者可预测和不可预测的情况,现在我们继续区分到底是可预测情况还是不可预测情况。如下图所示

    将x_center的第i个决策变量置为预测值而其他决策变量保持不变来生成n个试验个体x_trial[i],如果x_trial [i]支配x_center,则接受第i个决策变量的预测,并将第i个决策变量分类为可预测变量,并使用基于预测的方法重新初始化。否则,第i个决策变量是不可预测的,并使用基于多样性引入的方法重新初始化
    在这里插入图片描述
    下面就展示算法3 的伪代码
    在这里插入图片描述
    首先,分别根据(7)和(8)计算t-test和x_center。其次,使用预测模型来预测新的个体x_p(确切的预测模型在第IV -C节中进行了描述)。第三,产生试验个体(第6-14行)并进行评估。如果试验个体支配质心个体,则该试验个体的相应决策变量的预测是正确的,否则该预测是不可接受的。

    B、环境选择

    • DMOEA-DVC和SGEA[33]使用相同的选择方法,适应度函数F(i)表示支配个体xi的个体数目
      在这里插入图片描述

    • 如果存档A中个体少于N则从种群中挑选最好的个体进P’,如果刚好相等,就将A中所有个体转入P’,如果存档A中个体多了就从种群中挑选最远的个体进P’.

    C、ChangeResponse --变化响应

    定义的三种类型的决策变量分别使用保持,多样性引入和预测方法。

    • 保持:如果决策变量是相似变量,则DMOEA-DVC会在变化响应中保持该变量的值不变。
    • 多样性引入:如果决策变量是不可预测的变量,则对该变量应用随机重新初始化策略。变量更新如下:
      在这里插入图片描述
      其中,Li(t)和Ui(t)分别表示在时间t处第i个变量的上限和下限,rand是[0,1]中的随机值。
    • 预测方法:如果将决策变量分类为可预测变量,则使用具有较短训练周期的卡尔曼滤波器[25],[33]通过中心预测将其重新初始化。
    • 在这里插入图片描述
      下面就是算法4的伪代码
      在这里插入图片描述

    D、GenerateOffspring --子代生成

    模拟二进制交叉(SBX)或DE交叉算子用于根据决策变量是否为多最优值变量来生成决策变量的值。SBX和DE交叉算子是MOEAs中两个常用的交叉算子。
    在这里插入图片描述
    图1展示了这两个交叉算子生成的子代解的分布示例。SBX生成的子代解更接近父代,而DE交叉生成的子代解远离父代。应该在远离父代的位置生成多最优值变量,在这种情况下应使用DE交叉算子。而单最优值变量应在父代附近生成,即选择SBX。
    在这里插入图片描述
    这个伪代码已经很简单了,如果是多最优值变量就选择DE交叉算子,否则,单优值变量选择SBX交叉算子。

    E、种群更新

    DMOEA-DVC使用与SGEA相同的稳态种群更新策略。种群更新策略在父种群P和档案A中都执行。新生成的子代个体y用于替换P中最差的个体,同时更新A。

    Conclusion

    • 本文提出了一种基于决策变量分类的DMOEA,即DMOEA-DVC。对静态优化阶段和变化响应阶段的决策变量进行了分类。采用不同的策略来生成不同类型变量的值,以达到种群多样性和收敛性的良好平衡。
    • DMOEA-DVC与其他六种最先进的DMOEA在33个基准DMOP上进行了比较。实验结果表明了DMOEA-DVC算法的有效性。

    ps:上面大部分也是根据原文来进行总结以及理解的,由于本人也是才接触多目标进化没多久,学术功底有限,如果有不正确的地方欢迎批评指正!同时也借鉴了这些博客,如果想要了解,可以看
    https://blog.csdn.net/u013555719/article/details/106856234?
    同时这篇文章提到的几种动态多目标的算法,DCOEA、PPS、SGEA、有兴趣大家可以搜索了解一下。
    同时我目前的微信公众号也是“研行笔录”,后期我也会持续更新,如果有兴趣的话,可以点个关注,不迷路!
    在这里插入图片描述

    展开全文
  • 机器学习(六)决策优化-剪枝

    千次阅读 2018-04-03 22:49:35
    来自https://blog.csdn.net/u012328159/article/details/79285214决策树(decision tree)(二)——剪枝*... 决策树系列博客: 1. 决策树(一)——构造决策树 2. 决策树(二)——剪枝 3. 决策树(decision t...

    决策树(decision tree)(二)——剪枝

    **注:本博客为周志华《机器学习》读书笔记,虽然有一些自己的理解,但是其中仍然有大量文字摘自周老师的《机器学习》书。 
    决策树系列博客: 
    1. 决策树(一)——构造决策树 
    2. 决策树(二)——剪枝 
    3. 决策树(decision tree)(三)——连续值处理 
    4. 决策树(四)缺失值处理

    前面在决策树(decision tree)(一)中介绍了几种对结点划分的方法(信息增益、信息增益率、基尼指数),在这篇博客里主要介绍剪枝,即; 
    1. 预剪枝(pre-pruning) 
    2. 后剪枝(post-pruning) 
    首先剪枝(pruning)的目的是为了避免决策树模型的过拟合。因为决策树算法在学习的过程中为了尽可能的正确的分类训练样本,不停地对结点进行划分,因此这会导致整棵树的分支过多,也就导致了过拟合。决策树的剪枝策略最基本的有两种:预剪枝(pre-pruning)和后剪枝(post-pruning):

    • 预剪枝(pre-pruning):预剪枝就是在构造决策树的过程中,先对每个结点在划分前进行估计,若果当前结点的划分不能带来决策树模型泛华性能的提升,则不对当前结点进行划分并且将当前结点标记为叶结点。
    • 后剪枝(post-pruning):后剪枝就是先把整颗决策树构造完毕,然后自底向上的对非叶结点进行考察,若将该结点对应的子树换为叶结点能够带来泛华性能的提升,则把该子树替换为叶结点。

    一、预剪枝(pre-pruning) 
            关于预剪枝(pre-pruning)的基本概念,在前面已经介绍过了,下面就直接举个例子来看看预剪枝(pre-pruning)是怎样操作的。数据集为(图片来自西瓜书): 

    数据集

    这个数据集根据信息增益可以构造出一颗未剪枝的决策树(图片来自西瓜书): 
    未剪枝的决策树

    下面来看下具体的构造过程: 
    前面博客( 决策树(一))讲过用信息增益怎么构造决策树,这边还是用信息增益构造决策树,先来计算出所有特征的信息增益值: 
    3

    因为 色泽脐部的信息增益值最大,所以从这两个中随机挑选一个,这里选择 脐部来对数据集进行划分,这会产生三个分支,如下图所示:
    5

    但是因为是预剪枝,所以要判断是否应该进行这个划分,判断的标准 就是看划分前后的泛华性能是否有提升,也就是如果划分后泛华性能有提升,则划分;否则,不划分。 下面来看看是否要用 脐部进行划分, 划分前:所有样本都在根节点,把该结点标记为叶结点,其类别标记为训练集中样本数量最多的类别,因此标记为 好瓜,然后用验证集对其性能评估,可以看出样本{4,5,8}被正确分类,其他被错误分类,因此精度为43.9%。 划分后: 划分后的的决策树为: 
    决策树

    则验证集在这颗决策树上的精度为:5/7 = 71.4% > 42.9%。因此,用  脐部 进行划分。 
            接下来,决策树算法对结点 (2) 进行划分,再次使用信息增益挑选出值最大的那个特征,这里我就不算了,计算方法和上面类似,信息增益值最大的那个特征是“色泽”,则使用“色泽”划分后决策树为: 
    7

    但到底该不该划分这个结点,还是要用验证集进行计算,可以看到划分后,精度为:5/7=0.571<0.714,因此,预剪枝策略将禁止划分结点 (2) 。对于结点 (3) 最优的属性为“根蒂”,划分后验证集精度仍为71.4%,因此这个划分不能提升验证集精度,所以预剪枝将禁止结点 (3) 划分。对于结点 (4) ,其所含训练样本已属于同一类,所以不再进行划分。 
            所以基于预剪枝策略生成的最终的决策树为:
    最终的决策树

    总结: 对比未剪枝的决策树和经过预剪枝的决策树可以看出:预剪枝使得决策树的很多分支都没有“展开”,这不仅降低了过拟合的风险,还显著减少了决策树的训练时间开销和测试时间开销。但是,另一方面,因为预剪枝是基于“贪心”的,所以,虽然当前划分不能提升泛华性能,但是基于该划分的后续划分却有可能导致性能提升,因此预剪枝决策树有可能带来欠拟合的风险。

    二、后剪枝(post-pruning) 
            后剪枝就是先构造一颗完整的决策树,然后自底向上的对非叶结点进行考察,若将该结点对应的子树换为叶结点能够带来泛华性能的提升,则把该子树替换为叶结点。前面已经说过了,使用前面给出的训练集会生成一颗(未剪枝)决策树: 

    未剪枝的决策树

            后剪枝算法首先考察上图中的结点 (6),若将以其为根节点的子树删除,即相当于把结点 (6) 替换为叶结点,替换后的叶结点包括编号为{7,15}的训练样本,因此把该叶结点标记为“好瓜”(因为这里正负样本数量相等,所以随便标记一个类别),因此此时的决策树在验证集上的精度为57.1%(为剪枝的决策树为42.9%),所以后剪枝策略决定剪枝,剪枝后的决策树如下图所示: 
    这里写图片描述

            接着考察结点 5,同样的操作,把以其为根节点的子树替换为叶结点,替换后的叶结点包含编号为{6,7,15}的训练样本,根据“多数原则”把该叶结点标记为“好瓜”,测试的决策树精度认仍为57.1%,所以不进行剪枝。 
            考察结点 2 ,和上述操作一样,不多说了,叶结点包含编号为{1,2,3,14}的训练样本,标记为“好瓜”,此时决策树在验证集上的精度为71.4%,因此,后剪枝策略决定剪枝。剪枝后的决策树为: 
    这里写图片描述

            接着考察结点 3 ,同样的操作,剪枝后的决策树在验证集上的精度为71.4%,没有提升,因此不剪枝;对于结点 1 ,剪枝后的决策树的精度为42.9%,精度下降,因此也不剪枝。 
            因此,基于后剪枝策略生成的最终的决策树如上图所示,其在验证集上的精度为71.4%。

    总结:对比预剪枝后剪枝,能够发现,后剪枝决策树通常比预剪枝决策树保留了更多的分支,一般情形下,后剪枝决策树的欠拟合风险小,泛华性能往往也要优于预剪枝决策树。但后剪枝过程是在构建完全决策树之后进行的,并且要自底向上的对树中的所有非叶结点进行逐一考察,因此其训练时间开销要比未剪枝决策树和预剪枝决策树都大得多。

    参考文献 
    [1]: 周志华 《机器学习》 

    展开全文
  • 数学建模之优化模型详解

    千次阅读 2022-03-09 21:51:29
    全文共8090字,码字总结不易,老铁们来个三连:点赞、关注、评论作者:[左手の明天] 原创不易,转载请联系作者并注明出处 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本...
  • 生涯决定职场人的一生,生涯决策时很关键的一部分,今天介绍种生涯的类型和方法?能够帮助你更好的最自己做出评判。 五种典型的生涯决策风格 每人都有自己的个性,性格决定一人的做事和说话风格。 生涯...
  • 史上最强Tomcat8性能优化

    万次阅读 多人点赞 2019-10-25 15:33:32
    文章目录授人以鱼不如授人以渔目的服务器资源Tomcat配置优化Linux环境安装运行Tomcat8AJP连接执行器(线程池)3种运行模式部署测试用的web项目查看服务器信息部署web应用使用Apache JMeter进行性能测试下载安装修改...
  • 运筹优化(一)--运筹学概述

    万次阅读 多人点赞 2019-01-07 23:27:49
    优化方法的目的在于针对所研究的系统,求得一合理运用人力、物力和财力的最佳方案,发挥和提高系统的效能及效益,最终达到系统的最优目标。 运筹学的具体内容包括:规划论(包括线性规划、非线性规划、整数规划...
  • 论文研读-基于决策变量分析的大规模多目标进化算法 Multiobjective Evolutionary Algorithm Based on Decision Variable Analyses for Multiobjective Optimization Problems With Large-Scale Variables 觉得有用的...
  • 决策树的Python实现

    千次阅读 2021-07-15 11:35:03
    本文摘要:决策树的概述,决策树相关概念以及公式,构建决策树的种算法:ID3、C4.5、CART,用Python实现ID3算法,用sklearn实现决策
  • 决策树准确率低原因_决策树算法

    千次阅读 2020-10-23 00:01:10
    它是一种典型的分类方法,首先对数据进行处理,利用归纳算法生成可读的规则和决策树,然后使用决策对新数据进行分析。本质上决策树是通过一系列规则对数据进行分类的过程。决策树方法最早产生于上世纪60年代,到70...
  • 来源:https://www.zhihu.com/people/wang-jing-28-89-94什么是决策智能?大家看到这四字,大多数人心里的发问会是”什么是决策智能“呢?别说你没...
  • 自动驾驶决策规划算法概述

    千次阅读 2022-01-06 17:59:48
    一、级别分类 L0 横纵向都需要人操控,系统无法控制横向或者纵向 L1 系统只能操控横向或者纵向,系统能控制横向或者纵向中的一,但横纵向无法联合控制
  • SQL 优化推荐书单

    千次阅读 2018-05-26 15:11:39
    它涉及到的内容,有硬件大件,即 CPU, 内存,IO;还有与之交互的软件,SQL 和 内嵌的语言 远古时期的数据库应用,只有少数科学家在上面跑批处理,瓶颈往往都是单个硬件组件,比如 CPU, 内存,IO. 大家都知道的是...
  • 但是大量重要的ILP和INLP问题,并不存在多项式时间的解法,因此,启发式算法可以这样定义:一基于直观或经验构造的算法,在可接受的花费(指计算时间和空间)下给出待解决组合优化问题每一实例的一可行解,该...
  • 一、决策树简介1. 决策树的基本概念 决策树(Decision Tree)又称为分类树(Classification Tree),是最为广泛的归纳推理算法之一,处理类别型或连续型变量的分类预测问题,可以用图形和if-then的规则表示模型,...
  • 运筹优化(七)--动态规划解析

    万次阅读 多人点赞 2019-01-15 20:15:30
    其实,在各种算法领域,动态规划的思想随处可见,...动态规则是运筹学的一分支, 它是解决多阶段决策过程最优化的一种数学方法。 大约产生于20世纪50年代。1951年美国数学家贝尔曼(R .Bellman)等人,根据一类多阶段...
  • 优化|鲁棒优化基础

    千次阅读 2021-12-28 14:02:55
    本文讲解了鲁棒优化的基础内容,内容主要分为3部分:1.不确定性最优化。2.不确定集。3.对等式转换理论。在末尾附上了一简单的算例及代码便于读者理解。该文也是【运筹OR帷幄】鲁棒优化电子书系列的文章内容之一...
  • 数据挖掘十大算法之决策树详解(1)

    万次阅读 多人点赞 2016-11-20 10:51:32
    在2006年12月召开的 IEEE ...本博客已经介绍过的位列十大算法之中的5。本文主要介绍机器学习中的决策树模型。决策树模型是一类算法的集合,在数据挖掘十大算法中,具体的决策树算法占有两席位置,即C4.5和CART算法
  •  (1) 决策变量:该问题的决策变量就是每次订购量Q,由于问题是需求连续、均匀且不允许缺货,变量Q可以转化为变量t,即每隔t时间订购一次,订购量为Q=Rt。  (2) 目标函数:由于问题是线性的, 若t时间内平均...
  • 决策树(Decision Tree)算法详解及python实现

    千次阅读 多人点赞 2020-10-13 10:53:34
    本人大数据专业初入大三刚刚接触机器学习这一课程,最近在学习这本书《机器学习实战》,第章的内容就是决策树,概念非常简单,但是实现的话根据不同聚类情况要做出不同调整会有些许难。当然初入一些算法和机器学习...
  • 可作决策的人工智能

    千次阅读 2018-08-30 21:13:22
    【摘要】对人工智能的理解有很多不同的角度,本文将从谁是决策者的角度,来分析理解人工智能的特点。   一. 可作决策的人工智能的含义 名称 说明 决策过程中的角色 数据 ...
  • 多属性决策的理论与方法

    千次阅读 2019-11-24 23:15:25
    推荐两本书《移动云计算-——资源共享技术》 李波著...多属性决策一般包括两部分内容:1、获取决策信息,一般包括属性权重和属性值,其中属性权重的确定是多属性决策的一重要内容;2、通过一定的方式对决策信息进...
  • SQL优化:索引优化

    万次阅读 2017-08-22 08:18:08
     SQL索引在数据库优化中占有一非常大的比例, 一好的索引的设计,可以让你的效率提高几十甚至几百倍,在这里将带你一步步揭开他的神秘面纱。  1.1 什么是索引?  SQL索引有两种,聚集索引和非聚集索引,...
  • 决策树- 随机森林/GBDT/XGBoost

    千次阅读 2021-10-22 22:41:24
    2.假设样本特征数目为a,对n样本选择其中k特征, 用建立决策树的方式获得最佳分割点 3.重复m次,产生m棵决策树 4.对于分类问题,按多棵树分类器投票决定最终分类结果; 对于回归问题,由多棵树预测值的均值决定...
  • 链接:https://www.zhihu.com/question/26726794编辑:深度学习与计算机视觉声明:仅做学术分享,侵删k近邻、贝叶斯、决策树、svm、逻辑斯蒂回归和最大熵...
  • 决策树(十二)--XGBoost

    千次阅读 2018-11-11 16:11:14
    转自:https://cloud.tencent.com/developer/article/1005611 个人感觉这篇文章还是跟网上很多文章一样,把xgboost按gbdt来解释来。...实际上,xgboost是对gbdt的优化,所以,先说gbdt. GBDT 是常用的机...
  • 决策树案例分析

    万次阅读 2018-07-11 11:09:24
    通过一个决策树案例,着重从特征选择、剪枝等方面描述决策树的构建,讨论并研究决策树模型评估准则。最后基于 R 语言和 SPSS Modeler这两工具,分别设计与实现了决策树模型的应用实例。1.机器学习概念 机器学...
  • 2018-12-20更新,新增内容 2019-01-14更新,对...一般情况面对的样本通常具有很多特征,对事务的判断不能只从一角度出发,决策树的思想是先从一特征入手,通过这次分类使问题规模缩小,同时分类后的子集相比...
  • 群体智能之粒子群优化(PSO)

    千次阅读 2019-11-14 11:49:19
    文章目录第二章 粒子群优化算法2.1 粒子群优化2.1.1 算法思想2.1.2 粒子群优化过程2.1.3 解读更新等式2.2 粒子群优化中的参数参考文献 第二章 粒子群优化算法 粒子群优化(PSO)是一种基于群体智能的数值优化算法,由...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 90,566
精华内容 36,226
关键字:

优化决策的三个方面是

友情链接: 10详细说明.rar