1、人工智能基础-决策树大纲决策树简介防止过拟合提高准确性和健壮性KNIME 实现大纲决策树简介决策树简介决策树也叫分类树或回归树。叶子节点给出分类内部节点代表某个特征。分支代表某个决策规则通常采用自上而下的方法,在每一步选择一个最好的属性来分裂。最好 的定义是使得子节点中的训练集尽量的纯。不同的算法使用不同的指标来定义最好。男性?十岁以上?死亡有兄弟姐妹或者配偶?死亡幸存幸存是否是否否是决策树简介 决策树优点:易于理解、易于解释 可视化 决策树缺点:容易过拟合。如果某些类别占据主导地位,则决策树学习器构建的决策树会有偏差。因此推荐做法是在数据集与决策树拟合之前先使数据集保持均衡。大纲防止过拟合什
2、么情况是过拟合红色测试数据,绿色训练数据红色训练数据,绿色测试数据损失函数单选题2分防止过拟合 过拟合树深度损失函数其他数据训练数据防止过拟合 过拟合防止过拟合 树与过拟合d d防止过拟合 树与过拟合需要这么深的树吗?防止过拟合 树与过拟合1.需要这么深的树吗?3.样本数目会不会太少了2.错误率下降的够快吗你认为什么情况容易发生过拟合树太深树太浅和树没关系不知道单选题2分防止过拟合 树深度(d)与判定边界d=1d=2d=4d=7防止过拟合 树深度(d)与判定边界1247树深度损失函数其他数据训练数据防止过拟合 根据深度提前结束 不要让树长到最大,不要细节划分过于细致 深度 d 到底多少为好呢?
3、树深度损失函数其他数据训练数据防止过拟合 提前结束 不要让树长到最大,不要细节划分过于细致 深度 d 到底多少为好呢?树深度损失函数其他数据训练数据可以是测试数据吗?防止过拟合 测试集:绝对禁止使用测试数据进行训练 测试集要对模型的整个训练学习过程保持完全的彻底的无知!训练的时候绝对不能使用测试集!树深度损失函数其他数据训练数据可以是测试数据吗?防止过拟合 验证集 为了找到一个更好的 d,需要添加另外一个集合 验证集训练集训练集(60%)验证集验证集(20%)测试集测试集(20%)防止过拟合 验证集 d 就是一个超参数训练集训练集(60%)验证集验证集(20%)测试集测试集(20%)不能通过训
4、练由模型学习到的参数叫做超参数 Hyper Parameter训练模型参数寻找好的超参数测试模型树深度损失函数验证集训练集阈值太低容易过拟合欠拟合错误率阈值错误率验证集训练集单选题1分防止过拟合限制树的深度可能有一个问题有的分支可能深一些更好根据错误率决定是否结束根据错误率决定是否结束如果错误率降低小于阈值,停止错误率阈值错误率验证集训练集防止过拟合 还有很多情况,数据分类到一定时候,数据量已经很少,不具备足够的代表性了,结束样本数阈值损失函数验证集训练集防止过拟合 提前结束 限制树深度:一定深度后停止 分类错误:如果不能有效降低分类错误就停止分裂节点 最小样本数:如果节点包含过少节点就停止分
5、裂节点(一定要做)防止过拟合 提前结束 优点:不需要完全展开所有数据,速度快 缺点:可能结束太早,导致欠拟合(过拟合的反面)超参数损失函数验证集测试集怎么可能找不到?你以为实际是这样的?防止过拟合 提前结束 优点:不需要完全展开所有数据,速度快 缺点:可能结束太早,导致欠拟合(过拟合的反面)超参数损失函数验证集测试集其实比这个还难看!?防止过拟合 提前结束 优点:不需要完全展开所有数据,速度快 缺点:可能结束太早,导致欠拟合(过拟合的反面)剪枝解决欠拟合问题 提前结束也叫:预剪枝 这里说的剪枝也叫:后剪枝防止过拟合 剪枝pruning:把细枝末节剪掉,防止陷入细节先将这棵树长出来,再修剪掉不需
6、要的防止过拟合 剪枝pruning:把细枝末节剪掉,防止陷入细节 父节点错误率比子节点少,剪掉子节点0.40.30.60.70.80.60.40.30.20.4此节点错误率子节点平均错误率错误率更大了,剪除大纲提高准确性和健壮性对比左右两图,哪一个更可能是过拟合左边右边单选题2分假设右图没有过拟合发生,左图会比右图情况差在哪里结果不准结果受到参入变化影响大单选题2分假设左图没有欠拟合发生,右图会比左图情况差在哪里结果不准结果受到参入变化影响大单选题2分提高准确性和健壮性 简单了不准,复杂了也不准,怎么办 三个臭皮匠赛过诸葛亮可能吗?弱分类器可以组合成强分类器吗?弱分类器:简单的模型决策树优化方
7、法 组合算法ensemble:提高准确率和健壮性 袋装Bagging:随机森林:类似袋装进行抽样,而且对特征也进行抽样,提升boosting:与装袋类似,基本思想方法都是把多个弱分类器集成成强分类器。在数据量不足的情况下极其适用组合算法 弱分类器组合成为强分类器 三个臭皮匠赛过诸葛亮 Boostrap(自助抽样):随机有放回的抽样 自助抽样:随机拿出来,没吃,又放回去了组合算法兄弟姐妹分别工作然后少数服从多数投票决定袋装(Bagging,B Bootstrap AggAggregatinging):自助抽样n个样本集,建立n个决策树模型,然后投票 每个模型权重一样袋装使用多少个模型奇数个偶数个
8、单选题1分组合算法 袋装虽然每个模型方差很大,但是综合起来方差很小组合算法兄弟姐妹分别工作然后少数服从多数投票决定 随机森林:类似袋装进行自助抽样,而且对特征也进行抽样,每次抽m个特征(m一般为所有特征的平方根)防止特征之间的相关 随机森林使用多少个模型奇数个偶数个单选题1分组合算法子承父业,不断做大提升boosting:与装袋类似,基本思想方法都是把多个弱分类器集成成强分类器。不过与装袋不同,装袋的每一步都是独立抽样或者是给数据加权重提升每一次迭代则是基于前一次的数据进行修正,提高前一次模型中分错样本在下次抽中的概率 提升使用多少个模型奇数个偶数个无所谓不知道单选题1分组合算法 提升(Ada
9、boost 为例)组合算法 提升(Adaboost 为例)增大错误数据的权重f1组合算法 提升(Adaboost 为例)根据新的权重重新划分尽量将权重大数据的划分正确f2组合算法 提升(Adaboost 为例)w1*f1w2*f2模型权重w:模型越好权重越大数据权重:划分错误权重大+=肯定没问题不确定适当数量的弱分类器可以组成强分类器f组合算法 提升(Adaboost 为例)w1*f1w2*f2+。f=增多弱分类器的数目,提高准确率大纲KNIME 实现KNIME实现 使用 KNIME建立模型分析泰坦尼克号KNIME实现 使用验证集小结&提问 决策树每一步选择最好的属性分裂 决策树优化可以采取:剪枝和组合算法 01