一、AdaBoost思想
“三个臭皮匠,顶个诸葛亮”,这也正是集成学习的目的。为了达到上述目的,AdaBoost算法有两个核心思想。
1、更加关注之前基学习器做错的样本;
2、降低错误率较高的基学习器的权重,提高错误率低的基学习器权重。
举个例子,有若干名同学先后做同一套考试卷。考完的同学会告诉后面的同学自己哪道题做错了,让后面的同学更加关注这些错题,以便提高后面同学的正确率。
之后,当面对一道新的题目时,我们会参考所有同学的答案,并更倾向于相信考试时正确率较高的同学。
二、AdaBoost算法
对于上述两个核心思想,AdaBoost均有计算公式。
首先,为了更加关注之前基学习器做错的样本,在每轮学习过程中均会更新样本权重,更新公式如下:
其中,αt是基学习器权重,后文将会介绍。f(x)是样本实际分类值,ht(x)是基学习器分类输出值。Zt为归一化因子。
此后,为了降低高错误率学习器的权重,提高低错误率学习器的权重,每轮需要更新基学习器的权重αt,更新公式如下:
其中,ϵt为样本分类错误率。需要说明的是,样本分类错误率需要基于样本权重进行计算。 不能只是对错误样本进行计数,之后除以总数。
三、习题8.3运行结果
1、基学习器数量为3时:
基学习器数量: 3
实际样本类别值:
[ 1 1 1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1]
学习器分类值:
[ 1. 1. 1. 1. 1. 1. 1. 1. -1. -1. -1. -1. 1. 1. -