分类器算法:AdaBoost与多层感知器详解
1. AdaBoost算法
1.1 算法原理
AdaBoost算法实现了一个非常有趣的思想。它首先采用一种非常简单的分类器,即基分类器或弱分类器。这里的简单是指该分类器的表现略优于随机猜测,对于二分类问题,其错误率略低于0.5。
AdaBoost是一种迭代算法,它通过依次设计多个基分类器,最终生成一个基于这些基分类器的(最终)分类器。该算法的关键在于,在训练第t个基分类器时,每个训练向量 $x_i$ 会被赋予一个权重 $w_i$,其值取决于该向量是否被第 $t - 1$ 个基分类器错误分类(若错误分类则 $w_i$ 增加,否则 $w_i$ 减小)。这样,那些一直被错误分类的向量会得到越来越多的关注(权重)。最终的分类器是所有之前设计的基分类器的加权平均值。
有趣的是,这种方案在训练集上的错误率会收敛到0,而在测试集上的错误率会收敛到一个特定水平。通常情况下,将分类器训练到在训练集上达到零错误率会导致过拟合,但AdaBoost算法不会出现这种情况,这也是专家们讨论的一个问题。
1.2 基分类器的选择
选择一个分类错误率低于0.5的基分类器并不总是显而易见的。已经提出了几种基分类器,其中一种流行的类型是所谓的“树桩”。树桩可以表示为单节点分类树,即根据单一规则将分类问题中的两个类分开。
具体来说,假设特征空间的维度为 $l$。首先选择一个维度 $j \leq l$,计算训练集 $X$ 中 $N$ 个($l$ 维)向量在第 $j$ 维上的最小值和最大值。然后在这两个极值之间随机选择一个阈值 $\theta$,根据数据向量的第 $j$ 个坐标 $x_i(j
超级会员免费看
订阅专栏 解锁全文
6

被折叠的 条评论
为什么被折叠?



