机器学习经典算法之集成学习

集成学习(bagging boosting)

bagging并行

基学习器不同,在相同的训练集上进行学习;基学习器相同,在训练集的子集上进行训练,若采样过程为有放回采样,则为bagging(bootstrap aggregating);若为无放回采样,则为pasting,即bagging允许训练实例被一个预测器多次采样。

bagging方法在训练过程中,各基分类器之间无强依赖,可以进行并行训练。为了让基分类器间相互独立,将训练集分为若干子集(若训练样本过少,可利用采样),每个基分类器分别进行单独学习,学习的内容可以相同,也可以不同, 也可以部分重叠,最终决策时,每个个体单独做出判断,再通过投票的方式做出最后的决策。
可见,Bagging是通过减小方差来达到提高性能的。投票又分为两种方法,一种为硬投票,即大多数投票,一种为软投票,如果所有分类器都能给出类别的概率,给出平均概率最高的类别作为预测,通常来说,软投票比硬投票更优。

bagging中,最著名的就是基于决策树基分类器的随机森林(Random Forest),随机森林在树的生长上引入了更多的随机性:分裂节点时不再是搜索最好的特征,而是在一个随机生成的特征子集里搜索最好的特征,这导致决策树具有更大的多样性,(再一次)用更高的偏差换取更低的方差。更极端一点,如果我们对每个特征使用随机阈值,而不是搜索得出的最佳阈值,则可以让决策树长得更随机,以更高的偏差换取更低得方差,这叫极端随机树。

boosting串行

boosting通过减小偏差来提高性能,因为前后的基学习器强相关,因此不能有效降低方差。

Adaboost

Adaboost的核心思想是提高那些被前一轮弱分类器分类错误的样本的权值,降低那些被分类正确的样本的权值,最终结果使用加权多数表决法,即加大分类错误率小的弱分类器的权重,减小那些分类错误率大的弱分类器的权值。

算法步骤

输入:训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\} T={ (x1,y1),(x2,y2),,(xN,yN)},其中 x i ∈ X ⊆ R n , y i ∈ Y = { − 1 , + 1 } x_i\in \mathcal X \subseteq R^n,y_i\in\mathcal Y=\{-1,+1\} xiXRn,yiY={ 1,+1};弱学习算法;

输出:最终分类器 G ( X ) G(X) G(X)

(1).初始化训练数据得权值分布 D 1 = ( w 11 , ⋯   , w 1 i , ⋯   , w 1 N ) , w 1 i = 1 N , i = 1 , 2 , ⋯   , N D_1=(w_{11},\cdots,w_{1i},\cdots,w_{1N}),w_{1i}=\frac{1}{N},i=1,2,\cdots,N D1=(w11,,w1i,,w1N),w1i=N1,i=1,2,,N

(2).对 m = 1 , 2 , ⋯   , M m=1,2,\cdots,M m=1,2,,M

​ (a).使用具有权值分布 D m D_m Dm的训练数据集学习,得到基本分类器 G m ( x ) : X → { − 1 , + 1 } G_m(x):\mathcal X\rightarrow \{-1,+1\} Gm(x):X{ 1,+1}

​ (b).计算 G m ( x ) G_m(x) Gm(x)在训练数据集上的分类误差率 e m = ∑ i = 1 N P ( G m ( x i ) ≠ y i ) = ∑ i = 1 N w m i I ( G m ( x i ) ≠ y i ) e_m=\sum_{i=1}^NP(G_m(x_i)\neq y_i)=\sum_{i=1}^Nw_{mi}I(G_m(x_i)\neq y_i) em=i=1NP(Gm(xi)=yi)=i=1NwmiI(Gm(xi)=yi),由此可得, G m ( x ) G_m(x) Gm(x)在加权的训练数据集上的分类误差率是被 G m ( x ) G_m(x) Gm(x)误分类样本的权值之和。

​ ©.计算 G m ( x ) G_m(x) Gm(x)的系数 α m = 1 2 l n 1 − e m e m \alpha_m=\frac{1}{2}ln\frac{1-e_m}{e_m} αm=21lnem1em,分类误差越小的基学习器在最终分类器中的比重越大。

​ (d).更新训练数据集的权值分布 D m + 1 = ( w m + 1 , 1 , w m + 1 , 2 , ⋯   , w m + 1 , N ) D_{m+1}=(w_{m+1,1},w_{m+1,2},\cdots,w_{m+1,N}) Dm+1=(wm+1,1,wm+1,2,,wm+1,N)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经典机器学习算法一直是研究的热点,因为它们在各种应用场景中都具有重要的作用。以下是一些经典算法的改进研究方向: 1. 改进神经网络的训练算法:神经网络是机器学习中最常用的算法之一,但是它的训练过程往往需要大量的时间和计算资源。因此,改进神经网络的训练算法是一个非常重要的研究方向,例如利用分布式计算、模型压缩、自适应学习率等技术来加速训练过程。 2. 提高支持向量机的性能:支持向量机是一种经典的分类算法,在许多应用中表现出色。但是,在大规模数据集上,支持向量机的计算复杂度很高,因此需要研究如何提高它的性能,例如采用核方法、增量学习等技术。 3. 改进决策树算法:决策树是一种常用的分类算法,但是它的可解释性和泛化能力仍有提高的空间。因此,研究如何改进决策树算法,例如采用集成学习、剪枝等技术,可以提高其性能。 4. 提高聚类算法的效果:聚类是机器学习中的一种重要任务,但是现有的聚类算法往往受到数据维度、噪声干扰等因素的影响,因此需要研究如何提高聚类算法的效果,例如采用基于密度的聚类、谱聚类等技术。 5. 研究深度强化学习算法:深度强化学习是近年来兴起的一种研究方向,它在游戏、机人等领域有广泛的应用。但是,深度强化学习的训练过程非常复杂,需要研究如何提高算法的效率和稳定性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值