所谓集成学习,就是集成多个个体学习器来完成同一个任务,集成的方式可以是投票、加权什么的,这里的个体学习器可以是决策树、神经网络、朴素贝叶斯、SVM等。集成学习针对弱学习器(略强于瞎猜的学习器)的效果更为明显,因此通常这里的个体学习器都比较弱。其次,虽然对弱学习器的效果更明显,但为了在得到相同效果下使用更少的学习器,大家还是用强学习器比较好。最后,如果这里的个体学习器只包括一种学习器,这种集成学习是同质学习,学习的方法通常也叫基学习算法,而这里的学习器则称为基学习器。如果这里的个体学习器只包括多种学习器,这种集成学习是异质学习,这种集成学习方法(?可以叫异质学习算法),而这里的学习器则称为组件学习器。(为了便于表述,下文统称基学习器)
核心(学习器好而不同):然而集成学习中,如果基学习器相互独立,基学习器越多,集成学习结果越好,并且集成学习的最后结果会趋向于完全不会出错,而当基学习器够好时,需要的基学习器就越少。在现实中,基学习器基本不会是独立的,即好而不同通常是相互矛盾的,对于一个分类任务而言,好的分类器基本是非常相关的,甚至当足够好的时候,两个分类器就会完全相同,因此,集成学习的核心是找到好而不同的学习器。
集成方式1(串行,以boosting为例):使用数据集D以及他们的概率D1,训练一个分类器,如果这个分类器的准确率大于0.5,则保留记为h1。然后更新数据集D的概率分布为D2,其中D2中加强了h1分错的D中样本的概率,然后训练第二个准确率大于0.5的分类器h2。以此类推,得到h1,h2,h3....hn。最后分类器由这些分类器加权得到,即h=a1*h1+a2*h2+a3*h3...+an*hn,其中的权值由分类器的准确率决定。
集成方式2(并行,以bagging,随机森林为例):
2.1 bagging:使用数据集D,随机有放回采样出与D具有相同样本数的D1,D2,D3...,针对D1,D2,D3,各训练出一个分类器h1,h2,h3....,最后分类结果由这些分类器投票得到。
2.2 随机森林:与基学习器为决策树的bagging方法类似,区别在于bagging的决策树训练时选择划分属性时选择所有属性中最优的,而随机森林的基决策树训练时,选择先随机选择一个属性子集,然后从子集中选择一个最优的。
组合策略:
简单平均、加权平均(对于数值型输出,回归?)
简单投票(多者得)、加权投票、绝对多数投票(分类输出)
学习法:对于数据集D和所有基分类器,对每个基分类器输出生成一个新的数据集Dht,使用Dht训练一个学习器来组合这些基学习器的结果