内容正文:
课程名称
第6章 AdaBoost算法
计划学时
4学时
内容分析
本章主要介绍集成学习算法简介、AdaBoost算法原理、单层决策树与AdaBoost算法、实战:通过AdaBoost算法进行分类、非均衡分类
教学目标
与教学要求
要求学生理解集成学习的基本概念、理解AdaBoost的基本概念、掌握实现AdaBoost算法的方法
教学重点
AdaBoost算法原理、单层决策树与AdaBoost算法、实战:通过AdaBoost算法进行分类、非均衡分类
教学难点
AdaBoost算法原理、单层决策树与AdaBoost算法、实战:通过AdaBoost算法进行分类、非均衡分类
教学方式
课堂讲解及ppt演示
教
学
过
程
第一课时
(集成学习算法简介、AdaBoost算法原理、单层决策树与AdaBoost算法)
了解Python机器学习知识
1.介绍本书,引出本课时的主题
AdaBoost(adaptive boosting, 自适应强化) 算法属于集成学习算法, 它在机器学习和数据挖掘领域中应用广泛, 被列为数据挖掘十大算法之一。 其核心思想是, 针对同一个训练数据集训练出不同的分类器(弱分类器), 然后把这些弱分类器集合起来, 构成一个更强的最终分类器(强分类器)。 这种将弱分类器集合转换为强分类器的思想类似于 “三个臭皮匠顶个诸葛亮”。 本章将介绍不同分类器的集成方法, 然后重点介绍 Boosting 算法中最具代表性的 AdaBoost 算法。
2.明确学习目标
(1) 能够掌握集成学习算法简介
(2) 能够掌握AdaBoost算法原理
(3) 能够掌握单层决策树与AdaBoost算法
知识讲解
· 集成学习算法简介
集成学习算法是将弱学习算法提升为强学习算法的一类算法的统称, 可用来提升弱分类器的准确度。 关于弱分类器和强分类器的概念如下所示。
• 强分类器: 在概率近似正确(Probably Approxi mately Correct,PAC) 学习的框架中, 一个概念或者类, 如果存在一个多项式的学习算法能够学习它, 且正确率很高,称为强分类器。
• 弱分类器: 一个概念或者类, 如果存在一个多项式的学习算法能够学习它, 且它的学习正确率仅仅比随机猜测略好, 则为弱分类器。
· AdaBoost算法原理
在二分类问题中, 弱分类器通常是指错误率高于50% 的分类器, 而强分类器指的是错误率远低于弱分类器的分类器。 AdaBoost 算法的基本流程如下所示: 对数据集中的样本进行 训 练, 并 赋 予 数 据 集 中 每 个 样 本 一 个 权 重 值, 通 过 这 些 权 重 值 来 构 建 向 量 D 。AdaBoost 算法会在正式开始前, 初始化所有的权重值为一个相等的值。 在训练数据上训练出一个弱分类器并计算该分类器的错误率, 然后在同一数据集上再次训练弱分类器。 在下一次的分类器训练中, 会重新调整每个样本的权重: 上一次训练中被正确分类的样本的权重将会被降低, 而上一次训练中被错误分类的样本的权重将会被提高。 为了从所有弱分类器中得到最终的分类结果,AdaBoost 算法为每个分类器都分配了一个权重值α , 这些权重值是基于每个弱分类器的错误率进行计算的。 其中, 错误率的表达式如下所示。
· 单层决策树与AdaBoost算法
单层决策树(decision stump) 属于结构最简单的决策树, 也被称为决策树桩, 它仅仅基于单个特征来做决策。 需要注意的是, 单层决策树无法处理从某个坐标轴上选择一个值(即选择一条与坐标轴平行的直线) 来将所有的不同类型的数据分隔开来的问题。 接下来, 将介绍构建单层决策树的方法。
首先, 构建一个简单的数据集, 然后构建两个辅助函数。 第一个函数用于检测是否存在某个值小于或者大于当前正在测试的阈值, 第二个函数用于寻找具有最低错误率的单层决策树。 具体方法代码参考教材7.3节。
第二课时
(实战:通过AdaBoost算法进行分类、非均衡分类)
回顾内容
1. 回顾上节内容,引出本课时主题。
上节已经集成学习算法简介、AdaBoost算法原理、单层决策树与AdaBoost算法,下面开始讲解实战:通过AdaBoost算法进行分类、分类性能度量指标:正确率、召回率、分类性能度量指标:ROC曲线和非均衡数据的采样方法。从而引出本节的内容。
2.明确学习目标
(1) 能够掌握实战:通过AdaBoost算法进行分类
(2) 能够掌握分类性能度量指标:正确率、召回率
(3) 能够掌握分类性能度量指标:ROC曲线
(4) 能够掌握非均衡数据的采样方法
知识讲解
· 实战:通过AdaBoost算法进行分类
在构建了多个弱分类器并找到它