机器学习算法之Boosting

Boosting算法

Boosting也就提升算法,通过训练多个弱分类器,最后加权组合成一个分类精度比较高的强学习者。正所谓“三个臭皮匠,顶个诸葛亮”。其中弱分类器一般是指一个分类器的分类结果仅仅比随机分类好一点点。

算法过程

1、对于训练集中的每个样本建立权值wi,表示对每个样本的关注度。当某个样本被误分类的概率很高时,需要加大对该样本的权值。

2、进行迭代的过程中,每一步迭代都是一个弱分类器。我们需要用某种策略将其组合,作为最终模型。(例如AdaBoost给每个弱分类器一个权值,将其线性组合最为最终分类器。误差越小的弱分类器,权值越大)

目前,各种不同的boosting算法有很多,但最具代表性的当属AdaBoost算法,而且各种不同的Boosting算法都是在AdaBoost算法的基础上发展起来的。因此下面我们以AdaBoost算法为例对Boosting算法进行简单介绍。

Adaboost算法

AdaBoost算法的主要思想是给定一个训练集( x 1 , y 1 x_1,y_1 x1,y1),…,( x m , y m x_m,y_m xm,ym),其中 x i x_i xi属于某个域或者示例空间X, y i ∈ y_i \in yi{-1,1}。初始化时AdaBoost制定训练集上的分布为1/m,并按照该分布调用弱学习者学习器对训练集进行训练。每次训练后,根据训练结果更新训练集上的分布,并按照新的样本分布进行训练。反复迭代T轮,最终得到·一个估计序列 h 1 h_1 h1,…, h T h_T hT,每个估计都具有一定的权重,最终的估计H是采用有权重的投票方式获得。
AdaBoost算法的伪代码如下所示:
在这里插入图片描述
其中弱学习器可以选用决策树、神经网络、贝叶斯网络等。

Guess you like

Origin blog.csdn.net/baidu_41797613/article/details/120432615