- 一、简介
- (一)概念
- 决策树是一种十分常用的分类回归方法。决策树是一种树形结构,其中每个内部节点表示一个属性上的测试,每个分支代表一个测试输出, 每个叶节点代表一种类别。
- (一)概念
-
- (二)分类:
- 决策树分为分类决策树和回归决策树
- 分类回归树根据特征是否满足条件进行分类,根据需要选择的类别进行决策。
- 回归决策树根据特征满足情况进行打分,根据得分进行决策。
- 决策树分为分类决策树和回归决策树
- (二)分类:
-
- (三)决策树的预测 :
- 从根结点开始,对实例的某一特征进行测试,根据测试结果将实例分配到其子结点,如此递归地对实例进 行判断并分配,直至达到叶结点。
- 叶结点对应什么?
- 分类:输出得票最多的类
- 回归:输出样本标签的均值
- 决策树模仿的是 人类在做决策的过程。在医药、商业的应用里,如何让电脑模仿人类做决策是一个很早的人工智能问题
- (三)决策树的预测 :
-
- (四)决策树流行的算法:
- ID3算法
- CART算法
- C4.5算法
- (四)决策树流行的算法:
-
- (五)节点用途
- 根节点:用于存储全部数据集
- 叶节点:用于输出处理结果
- (五)节点用途
- 二、创建策略:
- (一)构建方式
- 1. 通过数据集运算出一个解的“方案池”
- 2. 通过最大化贪心指标在方案池中找到最优解
- 3. 使用最优解来构建决策树
- 如何评价决策树是好是坏?看叶节点结果的纯度,纯度越高,模型越好。
- 贪心概念
- 是用最快、最好的方式对树进行计算,避免多余的计算量。
- (一)构建方式
-
- (二)贪心指标设计
- 1. 设计贪心指标的方法:让叶结点尽早变得更纯
- 比如相亲先对比了候选人的收入、职业、家庭,都觉得满意,之后一看年龄不满足条件,立马pass掉。不如先看年龄,省得对比其他的条件。
- 1. 设计贪心指标的方法:让叶结点尽早变得更纯
- (二)贪心指标设计
-
-
- 2. 衡量不纯度的指标:树节点中跟样本标签不一致的程度。比如:11100,纯度为0.6,不纯度为0.4.
- 3. 衡量变纯程度的指标:信息增益
- 4. 建树过程:遍历全体划分点候选集,选择信息增益最大的划分点构建决策树, 递归执行
-
-
- (三)度量指标
- 1. 三大度量指标
- 基尼指数、香农熵、最大方差公式:
- 1. 三大度量指标
- (三)度量指标
-
-
-
-
- 解析:
-
-
-
-
-
- 2. 度量指标在决策树三大算法的应用:
- ID3算法
- C4.5算法
- CART算法
- Classification And Regression Trees的简写
- 2. 度量指标在决策树三大算法的应用:
-
-
-
- 信息增益IG
- 信息增益=父结点的香农熵(不纯度指标)— 子节点的香农熵(不纯度指标)
- 信息增益IG
-
-
-
-
- 信息增益值越大越好
-
-
- 三、候选集划分
- 划分类型:分为连续型和离散型特征的划分
- 连续特征:
- 假设连续特征F1有10种取值:1、2、3、4、5、6、7、8、9、10
- 把每一个值都作为判断条件列举出来,选择最优(即信息增益值最大)的划分条件。
-
- 离散特征:离散特征的划分可以用二叉树和多叉树两种。
- 假设离散特征F2有 4 种取值:A、B、C、D
- 二叉树:类似于连续特征的划分方式,也是取最优条件。
- 假设离散特征F2有 4 种取值:A、B、C、D
- 离散特征:离散特征的划分可以用二叉树和多叉树两种。
-
-
-
- 多叉树:有几种类别就使用几个子节点
-
-
- 四、构建流程
- 1. 计算根节点的香农熵
- 香农熵= — 求和 (子节点样本数/父节点样本数)*log (子节点样本数/父节点样本数)
- 1. 计算根节点的香农熵
-
- 2. 选择一个属性,计算出该属性每种类别的香农熵
- 以色泽为例,它有3青绿、乌黑、浅白等3种类别,计算每一种类别的香农熵
- 2. 选择一个属性,计算出该属性每种类别的香农熵
-
- 3. 求出该属性的信息增益值。
- 运用根节点香农熵IG - 子节点的香农熵 Ent
- 3. 求出该属性的信息增益值。
-
- 4. 运用相同方法求出其他属性的信息增益:
-
- 5. 经过排序对比,得出最大信息增益的属性是——纹理
- 纹理 >脐部> 根蒂 >敲声 >色泽> 触感;
- 以排序结果构建决策树
- 5. 经过排序对比,得出最大信息增益的属性是——纹理
- 五、剪枝处理
- 剪枝的原因:为了避免模型过拟合
- 宽泛来讲:机器学习模型都会有过拟合风险,在训练集上表现的 过于优秀,而泛化能力差,因此机器学习模型都有对应的防止过拟合的策略,决策树的策略就是剪枝
- 具体来讲:决策树生成算法会递归地建造决策树的分支,直到结点都很纯为止。这样产生的决策树往往对训练数据的分类很准确, 但失去泛化能力,即发生过拟合了,因此,可通过主动去掉一些分支来降低过拟合的风险,提高模型泛化能力。
- 剪枝的原因:为了避免模型过拟合
-
- 如何判断模型决策树是否过拟合?
- 看训练误差和测试误差的关系,测试误差越小,说明模型泛化能力越强。
- 如何判断模型决策树是否过拟合?
-
- 分为预剪枝和后剪枝
- 预剪枝:
- 优点是速度快、性能开销较小;但缺点在于可能欠拟合。
- 项目实操常用预剪枝(看重优点),有其他方法可以解决欠拟合风险。
- 预剪枝的方法: Spark & sklearn
- ①让最大深度小一些。树的深度等于超参数maxDepth
- ②设置最小分支节点的数量。没有分裂点能带来大于minInfoGain的信息增益
- ③设置叶节点的最小样本数。没有分裂点能让划分后的结点上至少有minInstances个实例 •
- 效果:类似于?
- 预剪枝:
- 分为预剪枝和后剪枝
-
-
- 后剪枝:
- 优点是不容易产生欠拟合,缺点速度慢,性能开销大。
- 后剪枝:
-
- 六、决策树模型的优缺点:
- 优点:
- 易于解释 (画图解释)
- 处理类别特征,其他的技术往往要求数据属性的单一
- 延展到多分类 (能做回归、二分类、多分类)
- 不需要特征缩放和多项式回归 (不会用到权重或距离度量)
- 能捕获非线性关系和特征间的交互关系
- 不需要独热编码处理
- 优点:
-
- 缺点:
- 寻找最优的决策树是一个NP-hard的问题,只能通过启发式方法求次优解
- 决策树会因为样本发生一点点的改动,就会导致树结构的剧烈改变
- 如果某些离散特征的特征值种类多,生成决策树容易偏向于这些特征 ID3
- 有些比较复杂的关系,决策树很难学习,比如异或
- 缺点: