博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
机器学习第5周--炼数成金-----决策树,组合提升算法,bagging和adaboost,随机森林。...
阅读量:4623 次
发布时间:2019-06-09

本文共 1449 字,大约阅读时间需要 4 分钟。

决策树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媲美

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

 

转载于:https://www.cnblogs.com/hellochennan/p/5425289.html

你可能感兴趣的文章
做前端要做的6大事
查看>>
LeetCode 813. Largest Sum of Averages
查看>>
vSphere、Hyper-V与XenServer 你选哪个?
查看>>
java.lang.UnsupportedClassVersionError
查看>>
实现接口必须要加注解@Override吗
查看>>
apicloud UISearchBar 使用方法
查看>>
【spring+websocket的使用】
查看>>
mongo二维数组操作
查看>>
localStorage之本地储存
查看>>
Archlinux 交换左Ctrl和Cap键
查看>>
#openstack故障处理汇总
查看>>
搜索旋转排序数组 II
查看>>
20、docker swarm
查看>>
psp工具软件前景与范围文档
查看>>
day06-三元表达式
查看>>
C# DateTime.Now详细用法
查看>>
Php中"{}"大括号的用法总结(转)
查看>>
JavaScript内存优化
查看>>
BZOJ1059: [ZJOI2007]矩阵游戏(二分图匹配)
查看>>
P3385 【模板】负环
查看>>