您的位置:首页 > 其它

机器学习之-Adaboost元算法-具体怎么实现及应用

2017-03-21 16:08 381 查看
1、AdaBoost的优缺点及适用数据类型:

优点:泛化错误率低,易编码,可以应用在大部分分类器上,无参数调整。

缺点:对离群点敏感。

适用数据类型:数值型和标称型数据。

2、什么是bagging:

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

就是从原始的数据集进行抽样,抽样得到的数据集大小与原数据集大小一样,但是抽样得到的数据集里含有重复的样本,通过这种方法创建S个这样的抽样数据集,然后将某个学习算法用作于这S个抽样数据集,就得到了S个分类器。当有新的数据时,就用这S个分类器对这个新数据进行分类,选择分类器投票结果中最多的类别作为最后的分类结果。

3、什么是boosting:

boosting与bagging很类似,即它们所使用的多个分类器的类型都是一致的(多个分类器使用的算法是一样的),区别在于boosting的多个分类器是通过串行训练而获得的,每个新分类器都根据已训练出的分类器的性能来进行训练,是通过集中关注被已有分类器错分的那些数据来获得新的分类器,并且boosting分类的结果是基于所有分类器的加权求和结果的。

4、什么是AdaBosst:

boosting方法拥有多个版本,其中一个最流行的版本就是AdaBoost。

5、AdaBoost的一般流程

1)收集数据:可以使用任意方法。

2)准备数据:依赖于所使用的的若分类器类型,本章使用的是单层决策树,这种分类器可以处理任何数据类型。也可以使用任意分类器作为若分类器,前面提到的多个分类器都可以充当AdaBoost的弱分类器,然而值得一提的是:简单分分类器的效果更好。

3)分析数据:可以使用任意方法。

4)训练算法:AdaBoost的大部分时间都用在训练上,分类器将多次在同一数据集上训练弱分类器。

5)测试算法:计算分类的错误率。

6)使用算法:同SVM一样,AdaBoost预测两个类别中的一个,如果想把它应用到多个类别的场合,那么就要像多累SVM中的做法一样对AdaBoost进行修改。

6、啥叫弱分类器:

“弱”意味着分类器的性能比随机猜测要略好,但是也不会好太多。

7、AdaBoost的运行过程:

训练数据中的每个样本都赋予其一个权重,这些权重构成了向量D。一开始这些权重都初始化为相等值。首先在训练数据集上训练出一个弱分类器并计算该分类器的错误率,然后在同一数据集上再次训练弱分类器。在分类器的第二次训练当中,将会重新调整每个样本的权重,其中第一次分对的样本的权重将会降低,而第一次分错的样本的权重将会提高。为了从所有弱分类器中得到最终的分类结果,AdaBoost为每个分类器都分配了一个权重值alpha,这些alpha值是基于每个弱分类器的错误率进行计算的。用alpha值对D进行更新。

终止条件为:训练错误率为0或者弱分类器的数目达到用户的指定值。

8、啥叫单层决策树:

也叫决策树桩,是一种简单的决策树,它仅基于单个特征来做决策,由于这棵树只有一次分裂过程,因此它实际上就是一个树桩。

9、使用单层决策树作为弱分类器的AdaBoost算法的伪代码实现:

对每次迭代:

    在数据集上找到最佳的单层决策树

    将最佳单层决策树加入到单层决策树数组

    计算alpha

    计算新的权重向量

    更新累计类别估计值

    如果错误率等于0.0,则退出循环

10、在一个难数据集上的AdaBoost应用:

a)收集数据:提供的文本文件;

b)准备数据:确保类别标签式+1和-1而非1和0;

c)分析数据:手工检查数据;

d)训练算法:在数据上,利用AdaBoostTrainDS()函数训练出一系列的分类器

e)使用算法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ml adaboost