AdaBoost算法

  • 组合相似的分类器来提高分类性能
  • 应用AdaBoost算法
  • 处理非均衡分类问题

概述

元算法: 对其他算法进行组合的一种方式. 代表-AdaBoost

不同分类器的集成方法:

  • boosting方法(代表-AdaBoost)

非均衡分类问题

基于数据集多重抽样的分类器

学习了常见的分类算法:KNN,决策树,朴素贝叶斯,logistic回归.他们各有优缺点,可以将不同的分类器进行组合,而这种组合结果就被称为集成方法或者元算法.

1. bagging

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

是从原始数据集选择S次后得到S个数据集的一种技术,新数据集和原数据集的大小相等.

一种先进的bagging方法 - 随机森林

2. boosting

类似bagging技术. 不管是boosting还是bagging,所使用的多个分类器的类型都是一致的,但是在前者当中,不同分类器是通过串行训练而获得的,每个新分类器都根据已训练出的分类器的性能进行训练.

boosting是通过集中关注被已有分类器错分的那些数据来获得新的分类器.

由于boosting分类的结果是基于所有分类器的加权求和结果的,因此boosting与bagging不太一样.

bagging中的分类器权重是相等的,而boosting中的分类器权重并不相等,每个权重代表的是其对应分类器在上一轮迭代中的成功度.

boosting方法拥有多个版本,本文只关注一个最流行的版本AdaBoost.

AdaBoost

一般流程

1
2
3
4
5
6
1. 收集数据
2. 准备数据: 依赖于所使用的弱分类器类型,比如单层决策树,这种分类器可以处理任何数据类型.(作为弱分类器,简单分类器的效果更好)
3. 分析数据
4. 训练算法: AdaBoost的大部分时间都用在训练上,分类器将多次在同一数据集上训练弱分类器
5. 测试算法: 计算分类的错误率
6. 使用算法:同SVM一样,AdaBoost预测两个类别中的一个.如果想把它应用到多个类别的场合,那么就要像多累SVM中的做法一样对AdaBoost进行修改

关于分类性能度量指标:正确率\召回率及ROC曲线. 128p.

基于代价函数的分类器决策控制. p131

处理非均衡问题的数据抽样方法 p132

代码:https://github.com/quantumcs/Machine-Learning-In-Action/tree/master/Ch07