集成学习②——Adaboost算法原理及python实现

集成学习系列目录
集成学习①——集成学习原理、分类和结合方法
集成学习③——Sklearn-Adaboost库参数及实战

一、AdaBoost算法原理

上一偏博客总结过,集成学习基于弱学习器之间是否依赖分为Boosting和Bagging两类, Adaboost就是Boosting中的典型代表。其核心思想是针对同一个训练集训练不同的学习器,然后将这些弱学习器集合起来,构造一个更强的最终学习算法

AdaBoost是英文"Adaptive Boosting"(自适应增强)的缩写,它的自适应在于:基于每一个分类器的误差率,来更新所有样本的权重,前一个分类器被错误分类的样本的权值会增大,而正确分类的样本的权值会减小,并再次用来训练下一个基本分类器。

Adaboost算法分为三步:
(1)初始化权值:每一个训练样本最开始权重相同
(2)训练弱分类器:先训练一个弱分类器,计算其误差率(被错误分类的样本权值和),基于误差率降低分类正确的样本权重,提升分类错误的样本权重。权值更新过的样本集被用于训练下一个分类器,整个训练过程如此迭代地进行下去。
(3)组合分类器:各个弱分类器的训练过程结束后,依据各分类器的误差率计算各自在最终分类器中的权重,误差率越大,权重越低,就是你说的越对,那么就越听你的,你满嘴跑火车,那就没人听你的了

Adaboost有几个要注意的指标:
① 初始权重:1/训练样本数D
② 误差率: 被分类错误的样本的权重和
③ 弱学习器的权重:
在这里插入图片描述
③ 更新训练样本权重:
在这里插入图片描述
在这里插入图片描述
④最终的分类器
在这里插入图片描述

二、Adaboost的python实现

① 构造训练样本

import numpy as np
import matplotlib.pyplot as plt

# 输出样本和类别
def loadsimple():
    datMat = np.matrix([[1., 2.1],
                        [1.5, 1.6],
                        [1.3, 1.],
                        [1., 1.],
                        [2., 1.]])
    classlablels = [1.0, 1.0, -1.0, -1.0, 1.0]
    return datMat, classla
  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值