机器学习 | 提升方法

Posted BBIT

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习 | 提升方法相关的知识,希望对你有一定的参考价值。

机器学习 | 提升方法(一)

提升(boosting)方法是一种常用的统计学习方法。在分类问题中,它通过改变训练样本的权重,学习多个分类器,并将这些分类器进行线性组合,提高分类性能。

AdaBoost算法

基本思路

对于一个复杂任务来说,将多个专家的判断进行适当的综合所得出的判断,要比其中任何一个专家单独判断效果好。在这里要先了解两个概念:“强可学习(strongly learnable)”和“弱可学习(weakly learnable)”的概念。概念指出,在概率近似正确(probably approximately correct,PAC)学习的框架中,一个概念(类),如果存在一个多项式的学习算法能够学习它并且正确率很高,则这个概念是强可学习的;如果正确率仅仅比随机猜测略好,则是弱可学习的。

这样一来,问题变成了如何将弱可学习算法提升为强可学习算法,这便是提升方法所需解决的问题,其中最具代表性的是AdaBoost算法。

提升方法就是从弱学习算法出发,反复学习,得到一系列的弱分类器(又称为基本分类器),然后组合这些弱分类器,构成一个强分类器。大多数的提升方法都是改变训练数据的概率分布(训练数据的权值分布),针对不同的训练数据分布调用弱学习算法学习一系列弱分类器。

对提升方法来说,有两个问题需要回答:一是在每一轮如何改变训练数据的权值或概率分布;而是如何将弱分类器组合成一个强分类器。关于第一个问题,AdaBoost的做法是提高那些被前一轮弱分类器错误分类样本的权值,降低被正确分类的样本的权值。对第二个问题,AdaBoost采取加权多数表决的方法,加大分类误差率小的弱分类器的权值,使其在表决中起较大的作用,减小分类误差率大的弱分类器的权值。

Adaboost算法

AdaBoost算法如下:

输入:训练数据集,其中 ;弱学习算法。

输出:最终分类器G(x)。

(1)初始化训练数据的权值分布

(2)对m = 1, 2, ..., M

(a)使用具有权值分布 的训练数据集学习,得到基本分类器

(b)计算 在训练数据集上的分类误差率

(c)计算 的系数

这里的对数是自然对数。

(d)更新训练数据集的权重分布

这里, 是规范化因子

它使 成为一个概率分布。

(3)构建基本分类器的线性组合

得到最终分类器

步骤说明如下:

步骤(1)假设训练数据集具有均匀的权值分布,即每个训练样本在基本分类器的学习中作用相同,这一假设保证第一步能够在原始数据上学习基本分类器

步骤(2)AdaBoost反复学习基本分类器,在每一轮m = 1, 2, ..., M顺次地执行下列操作:

(a)使用当前分布 加权的训练数据集,学习基本分类器

(b)计算基本分类器 在加权训练数据集上的分类误差率:

这里, 表示第m轮中第i个实例的权值, 。这表明, 在加权的训练数据集上的分类误差率是被 误分类样本的权值之和,由此可以看出数据权值分布与基本分类器的分类误差率的关系。

(c)计算基本分类器的系数 ,其表示 在最终分类器中的重要性,其随 的减小而增大,所以分类误差率越小的基本分类器在最终分类器中的作用越大。

(d)更新训练数据的权值分布,为下一轮做准备。误分类样本在下一轮学习中起更大的作用。不改变所给的训练数据,而不断改变训练数据权值的分布,使得训练数据在基本分类器的学习中起不同的作用,这就是AdaBoost的一个特点。

步骤(3)线性组合 实现M个基本分类器的加权表决。系数 表示了基本分类器 的重要性,这里,所有 之和不为1. 的符号决定实例x的类, 的绝对值表示分类的确信度。利用基本分类器的线性组合构建最终分类器是AdaBoost的另一特点。

以上就是今天的内容,谢谢大家的观看!


以上是关于机器学习 | 提升方法的主要内容,如果未能解决你的问题,请参考以下文章

机器学习平台痛点与模型提升方法:基于Spark的机器学习平台在点融网风控应用介绍

机器学习——提升方法AdaBoost算法,推导过程

机器学习笔记八 提升方法

如何将知识引入机器学习模型提升泛化能力?

机器学习建模神器PyCaret已开源!提升效率,几行代码轻松搞定模型

机器学习集成学习(Boosting)——AdaBoost提升算法(理论+图解+公式推导)