决策树相关问题
来源:互联网 发布:英语听力软件有哪些 编辑:程序博客网 时间:2024/05/16 09:31
1.算法原理
决策树(Decision Tree)是一种简单但是广泛使用的分类器。通过训练数据构建决策树,可以高效的对未知的数据进行分类。
决策数优点:
1)决策树模型可以读性好,具有描述性,有助于人工分析;比较适合处理有缺失值的样本,能够处理不相关的特征。
2)效率高,决策树只需要一次构建,反复使用,每一次预测的最大计算次数不超过决策树的深度。
决策树缺点:
1)容易过拟合(后面出现了随机森林,减小了过拟合现象,随机森林下面有讲解)
2.决策树构建的基本步骤如下:
1)开始,所有记录看作一个节点
2) 遍历每个变量的每一种分割方式,找到最好的分割点
3) 分割成两个节点N1和N2
4) 对N1和N2分别继续执行2-3步,直到每个节点足够“纯”为止
3.决策树的变量可以有两种:
1) 数字型(Numeric):变量类型是整数或浮点数,如前面例子中的“年收入”。用“>=”,“>”,“<”或“<=”作为分割条件(排序后,利用已有的分割情况,可以优化分割算法的时间复杂度)。
2) 名称型(Nominal):类似编程语言中的枚举类型,变量只能重有限的选项中选取,比如前面例子中的“婚姻情况”,只能是“单身”,“已婚”或“离婚”。使用“=”来分割。
4.过渡拟合
采用上面算法生成的决策树在事件中往往会导致过滤拟合。也就是该决策树对训练数据可以得到很低的错误率,但是运用到测试数据上却得到非常高的错误率。过渡拟合的原因有以下几点:
- 噪音数据:训练数据中存在噪音数据,决策树的某些节点有噪音数据作为分割标准,导致决策树无法代表真实数据。
- 缺少代表性数据:训练数据没有包含所有具有代表性的数据,导致某一类数据无法很好的匹配,这一点可以通过观察混淆矩阵(Confusion Matrix)分析得出。
- 多重比较:举个列子,股票分析师预测股票涨或跌
优化方案1:修剪枝叶
决策树过渡拟合往往是因为太过“茂盛”,也就是节点过多,所以需要裁剪(Prune Tree)枝叶。裁剪枝叶的策略对决策树正确率的影响很大。主要有两种裁剪策略。
前置裁剪 在构建决策树的过程时,提前停止。那么,会将切分节点的条件设置的很苛刻,导致决策树很短小。结果就是决策树无法达到最优。实践证明这中策略无法得到较好的结果。
后置裁剪 决策树构建好后,然后才开始裁剪。采用两种方法:1)用单一叶节点代替整个子树,叶节点的分类采用子树中最主要的分类;2)将一个字数完全替代另外一颗子树。后置裁剪有个问题就是计算效率,有些节点计算后就被裁剪了,导致有点浪费。
优化方案2:K-Fold Cross Validation
首先计算出整体的决策树T,叶节点个数记作N,设i属于[1,N]。对每个i,使用K-Fold Validataion方法计算决策树,并裁剪到i个节点,计算错误率,最后求出平均错误率。这样可以用具有最小错误率对应的i作为最终决策树的大小,对原始决策树进行裁剪,得到最优决策树。
优化方案3:Random Forest
Random Forest是用训练数据随机的计算出许多决策树,形成了一个森林。然后用这个森林对未知数据进行预测,选取投票最多的分类。实践证明,此算法的错误率得到了经一步的降低。这种方法背后的原理可以用“三个臭皮匠定一个诸葛亮”这句谚语来概括。一颗树预测正确的概率可能不高,但是集体预测正确的概率却很高。
- 决策树相关问题
- 决策树的相关概念
- 决策树相关知识小结
- 决策树相关算法理解
- 决策树相关知识点
- 决策树与随机森林相关概念
- 上下文相关音素-决策树聚类
- 决策树算法(一)-相关概念
- 决策树:排序问题的计算复杂性
- 决策树的过拟合问题
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 51nod1241 特殊的排序
- 游览器发送图片请求问题
- c语言实现轮廓标记
- Qt线程的简单使用(三)——通过一个实例理解QMutex的使用
- 高精度减法
- 决策树相关问题
- Java并发编程:线程封闭和ThreadLocal详解
- [x,fval]=linprog(c,a,b,aeq,beq,lb,ub,x0,options)
- Log4j maven依赖配置
- org.springframework.web.util.NestedServletException: Request processing failed; nested exception is
- C语言小结-输入型参数和输出型参数
- 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
- 基数排序
- 常用集合的底层数据结构