机器学习第5周--炼数成金-----决策树,组合提升算法,bagging和adaboost,随机森林。
决策树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,随机森林。的更多相关文章
- 机器学习第7周-炼数成金-支持向量机SVM
支持向量机SVM 原创性(非组合)的具有明显直观几何意义的分类算法,具有较高的准确率源于Vapnik和Chervonenkis关于统计学习的早期工作(1971年),第一篇有关论文由Boser.Guyo ...
- 机器学习第2周---炼数成金-----线性回归与Logistic
重点归纳 回归分析就是利用样本(已知数据),产生拟合方程,从而(对未知数据)迚行预测用途:预测,判别合理性例子:利用身高预测体重:利用广告费用预测商品销售额:等等.线性回归分析:一元线性:多元线性:广 ...
- Python数据分析【炼数成金15周完整课程】
点击了解更多Python课程>>> Python数据分析[炼数成金15周完整课程] 课程简介: Python是一种面向对象.直译式计算机程序设计语言.也是一种功能强大而完善的通用型语 ...
- dataguru(炼数成金)大数据培训基地印象
dataguru访问地址:http://f.dataguru.cn/?fromuid=99611 课程优惠码:C4B6 这段时间一直在dataguru(炼数成金)上学习<hadoop数据分析平 ...
- 炼数成金(dataguru)IT技能修炼
2016我定的目标就是要走出舒适区,进入学习区!为了少走弯路,节约学习的成本和时间,我选择了dataguru.看到心仪的课程毫不犹豫的就报了名. 分享了炼数成金邀请码,使用邀请码报名课程可以减免50% ...
- MapReduce工作原理图文详解 (炼数成金)
MapReduce工作原理图文详解 1.Map-Reduce 工作机制剖析图: 1.首先,第一步,我们先编写好我们的map-reduce程序,然后在一个client 节点里面进行提交.(一般来说可以在 ...
- 截图:【炼数成金】深度学习框架Tensorflow学习与应用
创建图.启动图 Shift+Tab Tab 变量介绍: F etch Feed 简单的模型构造 :线性回归 MNIST数据集 Softmax函数 非线性回归神经网络 MINIST数据集分类器简单版 ...
- 炼数成金数据分析课程---14、Logistic回归
炼数成金数据分析课程---14.Logistic回归 一.总结 一句话总结: 大纲+实例快速学习法 主要讲Logistic回归的原理及编程实现 1.事件的优势比(odds)是什么? 记y取1的概率是p ...
- 炼数成金数据分析课程---10、python中如何画图
炼数成金数据分析课程---10.python中如何画图 一.总结 一句话总结: 主要matplotlib库,pandas中也可以画一些基础图 大纲+实例快速学习法 1.matplotlib的最简单画图 ...
随机推荐
- C++ 友元类,友元函数
//友元函数 友元类 #include<iostream> using namespace std; class PointB { public: friend class PointC; ...
- C语言 百炼成钢22
/* 题目58: 编写一个业务函数,实现按行读取文件.把内容按照第三种内存模型打包数据传出,把行数通过函数参数传出. 函数原型有两个,任意选择其一 要求1:请自己任意选择一个接口(函数),并实现功能: ...
- 关于Unity的C#基础学习(二)
一.Debug的使用 int a=3; Debug.Log("a="+a); 二.整数的定义 int m; Debug.Log(m); //C#比C更严谨,没有初始化的变量打印出 ...
- javascript -- 阻止默认事件 阻止事件冒泡
1. event.preventDefault(); -- 阻止元素的默认事件.注:a元素的点击跳转的默认事件 , button,radio等表单元素的默认事件 , div 元素没有默认事件 例: ...
- Java凝视模板
设置凝视模板的入口: Window->Preference->Java->Code Style->Code Template 然后展开Comments节点就是全部需设置凝 ...
- ASP.NET MVC 随想录
http://www.cnblogs.com/OceanEyes/category/696137.html
- 通过HttpWebRequest在后台对WebService进行调用
目录: 1 后台调用Webservice的业务需求 2 WebService支持的交互协议 3 如何配置WebService支持的协议 4 后台对WebService的调用 4.1 SOAP 1.1 ...
- nyoj1237 最大岛屿(河南省第八届acm程序设计大赛)
题目1237 pid=1237" style="color:rgb(55,119,188)">题目信息 执行结果 本题排行 讨论区 最大岛屿 时间限制:1000 m ...
- fopen()函数文件模板中w,w+,a,a+的区别
"w" 写入方式打开,将文件指针指向文件头并将文件大小截为零.如果文件不存在则尝试创建之. "w+" 读写方式打开,将文件指针指向文件头并将文件大小截为零.如果 ...
- github 's usage
author:headsen chen date: 2018-05-30 10:50:56 notice:This article is created by headsen chen him ...