用决策树的方法对案例进行决策。

2024-05-20

1. 用决策树的方法对案例进行决策。

决策树在文本模式不好画,凑合着看吧!
决策点——新建工厂——@——销路好0.7—— +100-300/10=+70
                       ——销路差0.3—— -20-300/10 =-50
      ——新建小厂——@——销路好0.7—— +140-140/10=+126
                       ——销路差0.3—— +30-140/10 =+16
新建工厂 期望值=0.7*70-50*0.3=34
新建小厂 期望值=0.7*126+0.3*16=93
所以应新建小厂。

用决策树的方法对案例进行决策。

2. 决策树的理解与应用

 决策树🌲是一种基本的分类和回归的方法【以前总是下意识以为决策树只能用于分类,事实上还可以用于回归】。在分类问题中,决策树基于特征对实例进行分类,这个分类过程可以认为是if-then的规则集合,也可以认为是特征空间与类空间上的条件概率分布。
    NOTE:    if—then规则集合具有一个重要的特征:互斥且完备,即每个实例都被一条路径或者一条规则所覆盖,而且只能被一条路径或一条规则所覆盖
    优点 :简单易理解、分类速度快
    过程 :利用损失函数最小化原则对训练集进行建模,再利用建立好的模型进行分类。决策树的学习算法通常是递归地选择最优特征,并根据特征对训练集进行分割,最终形成从【根结点->叶子结点】的树模型, 但是这样生成的树可以容易发生过拟合,所以需要自底向上修剪✋ 
    决策树学习包括三个步骤:特征选择、决策树生成、决策树修剪    1.当特征数量较多时,在学习之前先进行特征选择   2.决策树生成对应局部最优   3.决策树修剪对应全局最优
    目标 :选择一个与训练数据矛盾较小的决策树,同时具有很好的泛化能力。
   通常,特征选择的准则是 信息增益或者信息增益比 
   先介绍基本概念:
   决策树的生成过程仅考虑到对训练数据集分类的准确性,这样生成的树模型容易出现过拟合且构建的树过于复杂,所以有必要对其进行剪枝。
    剪枝 :从已生成的树上裁掉一些子树或者叶结点,并将其根结点或者父结点作为新的叶结点,从而简化分类树模型。 剪枝往往是通过极小化决策树的整体损失函数来实现的 
    定义损失函数 :   设树  的叶结点个数为  ,  是树的叶结点,该叶结点有  个样本点,其中  类的样本点有  ,其中  是叶子结点  的经验熵,  为参数,决策树学习的损失函数为:        其中     所以最终的损失函数表示为:     
   公式解释:  是表示模型对训练集的预测误差,即模型与训练集的拟合程度,  表示模型的复杂度,叶子节点数越大模型越复杂,  是调节参数,控制模型的拟合和复杂程度。   当  确定时,选择损失函数最小的模型,这里定义的损失函数其实等价于正则化的极大似然估计。
    算法:    INPUT: 生成算法产生的整个树  ,参数     OUPUT: 修剪后的子树     1.计算每个结点的经验熵   2.递归地从树的叶结点向上回缩   回缩前后整体树的损失函数比较,如果回缩前的损失函数大于回缩后,进行剪枝。   3.重复2,直到不能继续为止,得到损失函数最小的子树  
   后期加入
   总结:决策树是一种简单快速的分类算法,本文不仅把熵相关的概念给整理了一遍,文中信息增益和信息增益比也可以用于其他模型的特征选择,而最后剪枝部分提到的决策树的损失函数是我之前在专门写的《详述机器学习中的损失函数》博客中没有提到的,这里也是一个补充。

3. 决策树方法


决策树方法

4. 决策树法的例题

某厂区建设项目,共分道路(甲)、厂房(乙)、办公楼(丙)3个标段进行招标建设,投标人只能选择其中一个标段参与投标。预期利润及概率见下表。若未中标,购买招标文件、图纸及人工费、利息支出合计为5000元。  方案及结果  中标、落标概率  效果  预期利润(万元)  预期利润概率  甲标段高价中标  0.2  赚  200  0.3  一般  50  0.6  赔  -20  0.1  甲标段高价落标  0.8  赔  -0.5  /  甲标段低价中标  0.4  赚  160  0.2  一般  40  0.6  赔  -30  0.2  甲标段低价落标  0.6  赔  -0.5  /  乙标段高价中标  0.3  赚  250  0.2  一般  80  0.7  赔  -30  0.1  乙标段高价落标  0.7  赔  -0.5  /  乙标段低价中标  0.5  赚  200  0.1  一般  60  0.7  赔  -40  0.2  乙标段低价落标  0.5  赔  -0.5  /  丙标段高价中标  0.1  赚  300  0.3  一般  100  0.5  赔  -40  0.2  丙标段高价落标  0.9  赔  -0.5  /  丙标段低价中标  0.3  赚  240  0.2  一般  70  0.5  赔  -50  0.3  丙标段低价落标  0.7  赔  -0.5  /  解:(1)绘制决策树依据表格数据绘制决策树,并将方案标于方案枝,概率标于概率枝,预期利润标于终点,见图5-1;(2)计算损益期望值计算各节点处的损益期望值,E=∑ G·P,并标注于相应的节点上方,E7 = 200 × 0.3+50 × 0.6+(-20) × 0.1 = 88, E1 = 88 × 0.2+(-0.5) × 0.8 = 17.2,E8 = 160 × 0.2+40 × 0.6+(-30) × 0.2 = 50, E2 = 50 × 0.4+(-0.5) × 0.6 = 19.7,E9 = 250 × 0.2+80 × 0.7+(-30) × 0.1 = 103, E3 = 103 × 0.3+(-0.5) × 0.7 = 30.55,E10 = 200 × 0.1+60 × 0.7+(-40) × 0.2 = 54, E4 = 54 × 0.5+(-0.5) × 0.5 = 26.75,E11 = 300 × 0.3+100 × 0.5+(-40) × 0.2 = 132, E5 = 132 × 0.1+(-0.5) × 0.9 = 12.75,E12 = 240 × 0.2+70 × 0.5+(-50) × 0.3 = 68, E6 = 68 × 0.3+(-0.5) × 0.7 = 20.05; (3)比较各方案节点的损益期望值max {E1,E2,E3,E4,E5,E6} = max {17.2,19.7,30.55,26.75,12.75,20.05} = E3;(4)结论节点3的期望值最大,故从损益期望值的角度分析,应选乙标段投标并以高价报价最为有利。

5. 决策树法

1.绘制决策树,见图。
2.计算期望值。
状态点2的期望值:0
状态点3的期望值:(-60000) ×0.02 = -1200(元)
状态点4的期望值:(-60000) ×0.02 + (-10000) ×0.25 = -3700(元)
3.选择损失最小的方案。
min{(0-1800),(-1200-500),(-3700-0)}=-1700(元)
以不搬走施工机械并作好防护措施最为合算。


请采纳。

决策树法

6. 决策树法解决

大厂:(80*0.7-20*0.3)*3+((80*0.9-20*0.1)*0.7-20*0.3)*7-300=151
小厂:(50*0.7+10*0.3)*3+((50*0.9+10*0.1)*0.7+10*0.3)*7-160=200.4
小厂好。我也不知道对不对哈,基础运筹学,10年没用过了,因为现实生活中用于无法预测市场概率。

7. 决策树的介绍

决策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运用概率分析的一种图解法。由于这种决策分支画成图形很像一棵树的枝干,故称决策树。在机器学习中,决策树是一个预测模型,他代表的是对象属性与对象值之间的一种映射关系。Entropy = 系统的凌乱程度,使用算法ID3, C4.5和C5.0生成树算法使用熵。这一度量是基于信息学理论中熵的概念。  决策树是一种树形结构,其中每个内部节点表示一个属性上的测试,每个分支代表一个测试输出,每个叶节点代表一种类别。 分类树(决策树)是一种十分常用的分类方法。他是一种监管学习,所谓监管学习就是给定一堆样本,每个样本都有一组属性和一个类别,这些类别是事先确定的,那么通过学习得到一个分类器,这个分类器能够对新出现的对象给出正确的分类。这样的机器学习就被称之为监督学习。

决策树的介绍

8. 决策树的原理及算法

决策树基本上就是把我们以前的经验总结出来。我给你准备了一个打篮球的训练集。如果我们要出门打篮球,一般会根据“天气”、“温度”、“湿度”、“刮风”这几个条件来判断,最后得到结果:去打篮球?还是不去?
  
 上面这个图就是一棵典型的决策树。我们在做决策树的时候,会经历两个阶段:构造和剪枝。
  
 构造就是生成一棵完整的决策树。简单来说,构造的过程就是选择什么属性作为节点的过程,那么在构造过程中,会存在三种节点:
   根节点:就是树的最顶端,最开始的那个节点。在上图中,“天气”就是一个根节点;
   内部节点:就是树中间的那些节点,比如说“温度”、“湿度”、“刮风”;
   叶节点:就是树最底部的节点,也就是决策结果。
  
 剪枝就是给决策树瘦身,防止过拟合。分为“预剪枝”(Pre-Pruning)和“后剪枝”(Post-Pruning)。
  
 预剪枝是在决策树构造时就进行剪枝。方法是在构造的过程中对节点进行评估,如果对某个节点进行划分,在验证集中不能带来准确性的提升,那么对这个节点进行划分就没有意义,这时就会把当前节点作为叶节点,不对其进行划分。
  
 后剪枝就是在生成决策树之后再进行剪枝,通常会从决策树的叶节点开始,逐层向上对每个节点进行评估。如果剪掉这个节点子树,与保留该节点子树在分类准确性上差别不大,或者剪掉该节点子树,能在验证集中带来准确性的提升,那么就可以把该节点子树进行剪枝。
  
 1是欠拟合,3是过拟合,都会导致分类错误。
                                          
 造成过拟合的原因之一就是因为训练集中样本量较小。如果决策树选择的属性过多,构造出来的决策树一定能够“完美”地把训练集中的样本分类,但是这样就会把训练集中一些数据的特点当成所有数据的特点,但这个特点不一定是全部数据的特点,这就使得这个决策树在真实的数据分类中出现错误,也就是模型的“泛化能力”差。
                                          
 p(i|t) 代表了节点 t 为分类 i 的概率,其中 log2 为取以 2 为底的对数。这里我们不是来介绍公式的,而是说存在一种度量,它能帮我们反映出来这个信息的不确定度。当不确定性越大时,它所包含的信息量也就越大,信息熵也就越高。
  
 ID3 算法计算的是信息增益,信息增益指的就是划分可以带来纯度的提高,信息熵的下降。它的计算公式,是父亲节点的信息熵减去所有子节点的信息熵。
                                          
 公式中 D 是父亲节点,Di 是子节点,Gain(D,a) 中的 a 作为 D 节点的属性选择。
  
 因为 ID3 在计算的时候,倾向于选择取值多的属性。为了避免这个问题,C4.5 采用信息增益率的方式来选择属性。信息增益率 = 信息增益 / 属性熵,具体的计算公式这里省略。
  
 当属性有很多值的时候,相当于被划分成了许多份,虽然信息增益变大了,但是对于 C4.5 来说,属性熵也会变大,所以整体的信息增益率并不大。
  
 ID3 构造决策树的时候,容易产生过拟合的情况。在 C4.5 中,会在决策树构造之后采用悲观剪枝(PEP),这样可以提升决策树的泛化能力。
  
 悲观剪枝是后剪枝技术中的一种,通过递归估算每个内部节点的分类错误率,比较剪枝前后这个节点的分类错误率来决定是否对其进行剪枝。这种剪枝方法不再需要一个单独的测试数据集。
  
 C4.5 可以处理连续属性的情况,对连续的属性进行离散化的处理。比如打篮球存在的“湿度”属性,不按照“高、中”划分,而是按照湿度值进行计算,那么湿度取什么值都有可能。该怎么选择这个阈值呢,C4.5 选择具有最高信息增益的划分所对应的阈值。
  
 针对数据集不完整的情况,C4.5 也可以进行处理。
                                                                                  
 暂无
  
 请你用下面的例子来模拟下决策树的流程,假设好苹果的数据如下,请用 ID3 算法来给出好苹果的决策树。
                                          
 「红」的信息增益为:1「大」的信息增益为:0
   因此选择「红」的作为根节点,「大」没有用,剪枝。
                                          
 数据分析实战45讲.17 丨决策树(上):要不要去打篮球?决策树来告诉你