飞鸟各投林

导航

机器学习第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媲美
对错误和离群点更加鲁棒性
决策树容易过度拟合的问题会随着森林规模而削弱
在大数据情况下速度快,性能好

 

posted on 2016-04-23 19:03  飞鸟各投林  阅读(870)  评论(0编辑  收藏  举报