【Python机器学习】利用AdaBoost元算法提高分类性能——基于数据集多重抽样的分类器

当做重要决定时,大家可能都会考虑吸取多个专家而不是一个人的意见,这就是元算法背后的思路。元算法是对其他算法进行组合的一种方式。AdaBoost是一种非常流行的元算法。

我们可以将不同的分类器组合起来,这种组合结果被称为集成方法 或者元算法。使用集成方法时会有多种形式:可以使不同算法的集成,也可以是同一算法在不同设置下的集成,还可以是数据集不同部分分类给不同分类器之后的集成。

AdaBoost的优缺点:

优点:泛化错误率低,易编码,可以应用在大部分分类器上,无参数调整

缺点:对离群点敏感

使用数据类型:数值型和标称型数据

bagging:基于数据随机重抽样的分类器构建方法

自举汇聚法,也称为bagging方法,是在从原始数据集选择S次后得到S个新数据集的一种技术。新数据集和原数据集的大小相等。每个数据集都是通过在原始数据集中随机选择一个样本来进行替换而得到的。这里的替换意味着可以多次地选择同一个样本。这一性质就允许新数据集中可以有重复的值,而原始数据集的某些值在新数据集中则不再出现。

在S个数据集建好之后,将某个学习算法分别作用于每个数据集就得到了S个分类器。当我们要对新数据进行分类时,就可以应用这S个分类器。与此同时,选择分类器投票结果中最多的类别作为最后的分类结果。

还有一些更先进的bagging方法,比如随机森林。

boosting

boosting是一种与bagging很类似的技术。不论是在boosting还是bagging当中,所使用的多个分类器的类型都是一致的。但是在前者中,不同的分类器是通过串行训练而获得的,每个新分类器都根据已训练出的分类器的性能来进行训练。boosting是通过集中关注被已有分类器错分的那些数据来获得新的分类器。

由于boosting分类的结果是基于所有分类器的加权求和结果的,因此boosting与bagging不太一样。bagging中的分类器权重是相等的,而boosting中的分类器权重并不相等,每个权重代表的是其对应分类器在上一轮迭代中的成功度。

boosting方法拥有多个版本。

AdaBoost的一般流程:

1、收集数据:可以使用任意方法

2、准备数据:依赖于所使用的弱分类器类型,其中单层决策树可以处理任意数据类型;对于弱分类器,简单分类器的效果更好

3、分析数据:可以使用任意方法

4、训练算法:AdaBoost的大部分时间都用在训练上,分类器将多次在同一数据集上训练弱分类器

5、测试算法:计算分类的错误率

6、使用算法:同SVM一样,AdaBoost预测两个类别中的一个。如果想把它应用在多个类别的场合,就要进行修改。

相关推荐
冷雨夜中漫步几秒前
Python快速入门(6)——for/if/while语句
开发语言·经验分享·笔记·python
郝学胜-神的一滴21 分钟前
深入解析Python字典的继承关系:从abc模块看设计之美
网络·数据结构·python·程序人生
百锦再23 分钟前
Reactive编程入门:Project Reactor 深度指南
前端·javascript·python·react.js·django·前端框架·reactjs
颜酱2 小时前
图结构完全解析:从基础概念到遍历实现
javascript·后端·算法
m0_736919102 小时前
C++代码风格检查工具
开发语言·c++·算法
yugi9878382 小时前
基于MATLAB强化学习的单智能体与多智能体路径规划算法
算法·matlab
喵手2 小时前
Python爬虫实战:旅游数据采集实战 - 携程&去哪儿酒店机票价格监控完整方案(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·采集结果csv导出·旅游数据采集·携程/去哪儿酒店机票价格监控
2501_944934732 小时前
高职大数据技术专业,CDA和Python认证优先考哪个?
大数据·开发语言·python
helloworldandy2 小时前
使用Pandas进行数据分析:从数据清洗到可视化
jvm·数据库·python
DuHz2 小时前
超宽带脉冲无线电(Ultra Wideband Impulse Radio, UWB)简介
论文阅读·算法·汽车·信息与通信·信号处理