决策树decision tree

什么是决策树
输入:学习集
输出:分类觃则(决策树)

决策树算法概述

70年代后期至80年代初期,Quinlan开发了ID3算法(迭代的二分器)
Quinlan改迚了ID3算法,称为C4.5算法
1984年,多位统计学家在著名的《Classification and regression tree》书里提出了CART算法
ID3和CART几乎同期出现,引起了研究决策树算法的旋风,至今已经有多种算法被提出

算法的核心问题

该按什么样的次序来选择变量(属性)?
最佳分离点(连续的情形)在哪儿?

ID3算法

信息增益计算

递归+分而治之

在上图的基础上,再递归使用这个方法计算子节点的分裂属性,最终就可以得到整个决策树。
这个方法称为ID3算法,还有其它的算法也可以产生决策树
对于特征属性为连续值,可以如此使用ID3算法:先将D中元素按照特征属性排序,则每两个相邻元素的中间点可以看做潜在分裂点,

从第一个潜在分裂点开始,分裂D并计算两个集合的期望信息,具有最小期望信息的点称为这个属性的最佳分裂点,其信息期望作为此属性的信息期望。

C4.5算法

信息增益的方法倾向于首先选择因子数较多的变量
信息增益的改迚:增益率

CART算法

使用基尼指数选择变量

剪枝

CART的剪枝

后剪枝:先产生完全的决策树,再迚行裁剪。不之相对的做法是前剪枝
代价复杂度:叶节点个数(裁减对象)和树的错误率的函数
如果剪枝能使代价复杂度下降,则实施之
剪枝集

怎样评估分类器效能?

提升分类器准确率的组合方法

组合方法包括:裃袋(bagging),提升(boosting)和随机森林
基于学习数据集抽样产生若干训练集
使用训练集产生若干分类器
每个分类器分别迚行预测,通过简单选举多数,判定最终所属分

为什么组合方法能提高分类准确率?

组合算法的优势

1.能明显提升判别准确率
2.对误差和噪音更加鲁棒性
3.一定程度抵消过度拟合
4.适合并行化计算

装袋算法

解释:有放回抽样不自助样本

有放回抽样
自助样本(bootstrap),韩家炜书第241页

袋装算法的优势

准确率明显高于组合中任何单个的分类器
对于较大的噪音,表现不至于很差,并且具有鲁棒性
不容易过度拟合

提升(boosting)算法思想

训练集中的元组被分配权重
权重影响抽样,权重越大,越可能被抽取
迭代训练若干个分类器,在前一个分类器中被错误分类的元组,会被提高权重,使到它在后面建立的分类器里被更加“关注”
最后分类也是由所有分类器一起投票,投票权重取决于分类器的准确率

Adaboost算法

提升算法的优缺点

可以获得比bagging更高的准确率
容易过度拟合

随机森林(Random Forest)算法

由很多决策树分类器组合而成(因而称为“森林”)
单个的决策树分类器用随机方法构成。首先,学习集是从原训练集中通过有放回抽样得到的自助样本

其次,参不构建该决策树的变量也是随机抽出,参不变量数通常大大小于可用变量数。
单个决策树在产生学习集和确定参不变量后,使用CART算法计算,不剪枝
最后分类结果取决于各个决策树分类器简单多数选举

随机森林算法优点

准确率可以和Adaboost媲美
对错误和离群点更加鲁棒性
决策树容易过度拟合的问题会随着森林规模而削弱
在大数据情况下速度快,性能好

机器学习第5周--炼数成金-----决策树,组合提升算法,bagging和adaboost,随机森林。的更多相关文章

  1. 机器学习第7周-炼数成金-支持向量机SVM

    支持向量机SVM 原创性(非组合)的具有明显直观几何意义的分类算法,具有较高的准确率源于Vapnik和Chervonenkis关于统计学习的早期工作(1971年),第一篇有关论文由Boser.Guyo ...

  2. 机器学习第2周---炼数成金-----线性回归与Logistic

    重点归纳 回归分析就是利用样本(已知数据),产生拟合方程,从而(对未知数据)迚行预测用途:预测,判别合理性例子:利用身高预测体重:利用广告费用预测商品销售额:等等.线性回归分析:一元线性:多元线性:广 ...

  3. Python数据分析【炼数成金15周完整课程】

    点击了解更多Python课程>>> Python数据分析[炼数成金15周完整课程] 课程简介: Python是一种面向对象.直译式计算机程序设计语言.也是一种功能强大而完善的通用型语 ...

  4. dataguru(炼数成金)大数据培训基地印象

    dataguru访问地址:http://f.dataguru.cn/?fromuid=99611 课程优惠码:C4B6  这段时间一直在dataguru(炼数成金)上学习<hadoop数据分析平 ...

  5. 炼数成金(dataguru)IT技能修炼

    2016我定的目标就是要走出舒适区,进入学习区!为了少走弯路,节约学习的成本和时间,我选择了dataguru.看到心仪的课程毫不犹豫的就报了名. 分享了炼数成金邀请码,使用邀请码报名课程可以减免50% ...

  6. MapReduce工作原理图文详解 (炼数成金)

    MapReduce工作原理图文详解 1.Map-Reduce 工作机制剖析图: 1.首先,第一步,我们先编写好我们的map-reduce程序,然后在一个client 节点里面进行提交.(一般来说可以在 ...

  7. 截图:【炼数成金】深度学习框架Tensorflow学习与应用

    创建图.启动图 Shift+Tab Tab 变量介绍: F etch Feed 简单的模型构造 :线性回归 MNIST数据集 Softmax函数 非线性回归神经网络   MINIST数据集分类器简单版 ...

  8. 炼数成金数据分析课程---14、Logistic回归

    炼数成金数据分析课程---14.Logistic回归 一.总结 一句话总结: 大纲+实例快速学习法 主要讲Logistic回归的原理及编程实现 1.事件的优势比(odds)是什么? 记y取1的概率是p ...

  9. 炼数成金数据分析课程---10、python中如何画图

    炼数成金数据分析课程---10.python中如何画图 一.总结 一句话总结: 主要matplotlib库,pandas中也可以画一些基础图 大纲+实例快速学习法 1.matplotlib的最简单画图 ...

随机推荐

  1. 第二百六十八节,Tornado框架-路由映射之二级域名支持,html模板继承以及导入

    Tornado框架-路由映射之二级域名支持,html模板继承以及导入 二级域名路由映射add_handlers()设置二级域名路由映射 注意:二级域名需要结合服务器ip绑定域名 框架引擎 #!/usr ...

  2. jQuery对象与javaScript对象的互换

    1. jQuery对象-->Dom对象 1) 通过 .[0] 的方式:       var $s = $(.class);  (jQuery对象)       var s = $s.[0];   ...

  3. Git神器sourceTreesetup,让你的git效率迅速提升

    image.png 小编之前在简书和公众号发不过idea如何git clone,git add,创建分支,创建码云的操作idea和Webstorm上使用git和github,码云最近又找到一款git神 ...

  4. UEditor API 文档

    来源:http://www.e4dai.com/ueditor-api/#ue.editor http://www.e4dai.com/ueditor-api/ UE.Editor 依赖 editor ...

  5. cocos2dx --- 富文本的使用 RichText

    在实际工作中,有非常多地方会使用 富文本,这里仅仅介绍最简单的富文本用法: 是由cocostudio 提供的 RichText: 直接贴代码,再分析: //这里測试富文本控件 ui::RichText ...

  6. OSG简单测试框架

    #include <osgDB/ReadFile> #include <osgDB/FileUtils> #include <osg/ArgumentParser> ...

  7. 40 个顶级 jQuery 图片、内容滑块和幻灯片

    在这个快速发展的网络世界中,我们使用图片.内容滑块和幻灯片来给网站实现良好.有吸引力的外观.你可以吸引浏览者借助图像滑块让网站更加具有活力.使用 JavaScript 可以轻松实现轻量级的图片和内容滑 ...

  8. 编写jsp动态网页

    默认情况下,jsp网页必须保存在TOMCAT_HOME/webapps 目录下才能被客户请求. JSP网页的主题仍然是html标签,在需要显示动态数据的地方添加<%%>标记,在其中编写合法 ...

  9. codevs 5962 [SDOI2017]数字表格

    输入描述 Input Description  [题解] 对于蓝色部分预处理前缀积. 然后在用除法分块搞一下. O(Q*sqrt(min(n,m))*logn+nlogn) #include<c ...

  10. Arduino开发版学习计划--蓝牙控制小车行走

    蓝牙模块一共6个引脚,我们一般只需要接4个线就可以了,分别是VCC.GND.TXD.RXD这四个引脚,我们分别接到arduino板子上,VCC接3.3V,GND接板子的GND,蓝牙TXD接板子的RXD ...