Adaboost分类算法原理及代码实例 python

一、Adaboost 简介

     集成学习(Ensemble Learning) 是机器学习领域表现最强的一大分支,主要原理是将多个弱机器学习器结合,构建一个有较强性能的机器学习器。集成学习方法可以分为两类:BoostingBagging
     Bagging:它的特点是各个弱学习器是并行关系,相互之间没有依赖,如随机森林算法,是由多个独立决策树模型共同组成。
     Boosting, 也称为增强学习或提升法,特点是当前的弱学习器与上一弱学习器之间有依赖关系,且可以通过不断地构建多个“链式”弱学习器,最终形成一个强学习器。
     AdaBoost 属于Boosting算法的一种,英文全称"Adaptive Boosting"(自适应增强),它的自适应在于:前一个基本分类器被错误分类的样本的权值会增大,而正确分类的样本的权值会减小,并再次用来训练下一个基本分类器。同时,在每一轮迭代中,加入一个新的弱分类器,直到达到某个预定的足够小的错误率或达到预先指定的最大迭代次数才确定最终的强分类器。
在这里插入图片描述

一、Adaboost 算法过程

  • 给定一个二分类数据集
    T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } T = \{ (x_{1},y_{1}),(x_{2},y_{2}),...,(x_{N},y_{N}) \} T={(x1,y1),(x2,y2),...,(xN,yN)}
    其中, y i ∈ { − 1 , 1 } y_{i} \in \{ -1,1 \} yi{ 1,1}

  • 算法流程:
    (1)初始化每条数据的权重
    D 1 = ( w 1 , w 2 , . . . , w N ) = ( 1 N , 1 N , . . . , 1 N ) D_{1} = (w_{1},w_{2},...,w_{N}) = (\frac{1}{N},\frac{1}{N},...,\frac{1}{N}) D1=(w1,w2,...,wN)=(N1,N1,...,N1)

(2)进行迭代
    a. 选取一个误差率最低的弱分类器 h h h 作为第 t t t 个基分类器 h t h_{t} ht,并计算该基分类器的拟合误差率:
e t = P ( h t ( x i ) ≠ y i ) = ∑ i = 1 N w t i I ( h t ( x i ) ≠ y i ) e_{t} = P(h_{t}(x_{i}) \neq y_{i}) = \sum_{i=1}^{N}{w_{ti} I(h_{t}(x_{i}) \neq y_{i})} et=P(ht(xi)=yi)=i=1NwtiI(ht(xi)=yi)
其中, I ( h t ( x i ) ≠ y i ) = { 0 , h t ( x i ) = y i 1 , h t ( x i ) ≠ y i I(h_{t}(x_{i}) \neq y_{i})= \begin{cases} 0, &h_{t}(x_{i}) = y_{i} \\ 1, &h_{t}(x_{i}) \neq y_{i} \end{cases} I(ht(xi)=yi)={ 0,1,ht(xi)=yiht(xi)=yi
不难看出,拟合误差率其实就是误分类样本的权值之和。

    b. 计算基分类器 h t h_{t} ht在最终分类器 H H H中所占的权重
α t = 1 2 l n ( 1 − e t e t ) \alpha_{t} = \frac{1}{2} ln(\frac{1-e_{t}}{e_{t}}) αt=21ln(e

评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值