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 丨决策树(上):要不要去打篮球?决策树来告诉你