集成学习(Ensemble Learning)

1、集成学习主要采用“三个臭皮匠抵过一个诸葛亮”的思想,集成了多个较为弱小的学习器,以使得实验获得好的效果

产生历史:结合多个分类器比一个分类器的方法还要好

2、构造集成器的方法

可以采用majority voting来进行classification或者使用weighted average来进行regression

为了要得到一个好的分类器,base learners必须要尽可能的准确,尽可能的多样化。已经有很多人来研究

学习器的准确率,但是很少人能用一个准确的方式来定义diversity。定义多样化方式的衡量方法可以有很多中,

如何从训练样本中进行抽样,控制属性,控制输出,将随机性引入学习方法。不同base learners的结合

或者采用技术导致了各种集成方法。

3、代表性的方法有三种:Boosting Bagging Stacking

Boosting 

首先,为所有的数据分配相等的权重,

然后,使用训练数据来测试算法ht,并且增加那些不正确分类的数据的权重。

每个学习算法的权重也在学习过程中被确定。可以用T种的学习器,每个学习器都会有一个分类结果,

如果发现分类结果不准确,那么那个训练数据例子的权重也会增加,同时,也会计算学习器t的权重。

最后再对每个学习器的权重和学习器判别结果进行乘积,得到判别结果。

Bagging

1、选择some bootstrap sample,每个学习器选择的例子可能都不同。原例子出现的概率至少为0.632,可能用其他的label

来代替原训练数据的label。

2、对选择出来的sample进行训练。

最后output的时候采用了majority voting的方法。选择使得所有分类learner的大部分都分类的结果。

Stacking:

先用所有的学习算法构造所有学习器

构建一个新的数据空集,每次都把学习器判别的结果加入数据集,那么数据集合就会变得比以前还要大。

然后对新的数据集进行分类,学习。


选择所有的学习器并不一定比全部都选择的好,many could be more better than all.

集成学习不仅可以用来做分类和回归,还可以用来聚类,或者其他的机器学习任务。

为什么选择一个学习器不一定比所有的学习器都要好呢?

1、训练数据可能不能提供足够的信息来选择准确的学习器,很多学习器的效果都是相当的。尝试着结合所有的

学习器可能是个better choice

2、每个学习器可能会达到一个次优的结果,所有的搜索结果都不是那么完美的。

3、搜索结果可能不包含最好的那个函数。


应用:文本分类、医药检测

总结:

1、目前没有比较好的多样性度量

2、集成学习器的方法还没有很好的为用户所了解。

你可能感兴趣的:(learning,ensemble)