提升方法(boosting)详解
注:本文非笔者原创,原文转载自:http://www.sigvc.org/bbs/thread-727-1-1.html
AdaBoost算法
- 初始化训练数据的概率分布,刚开始为均匀分布
- 对m=1,2,…,M,
- 使用具有权值分布Dm的训练数据集进行学习(任意选一种模型都可以,例如朴素贝叶斯,决策树,SVM等,并且每一轮迭代都可以用不同的模型),得到一个弱分类器
- 计算Gm(x)在训练数据集上的分类误差率
- 计算弱分类器Gm(x)的系数
- 更新训练数据的权值分布
- 将M个基本分类器进行线性组合
AdaBoost的例子
序号
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
x
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
y
|
1
|
1
|
1
|
-1
|
-1
|
-1
|
1
|
1
|
1
|
-1
|
初始化训练数据的权值分布
- 在权值分布为D1的情况下,用一根垂直扫描线从左到右扫描,会发现,阀值v取2.5时分类误差率最低,故基本分类器G1(x)=sign(x-2.5)。
- G1(x)在训练数据集上的误差率
,第7,8,9个实例被误分类。 - 计算G1(x)的系数: =0.4236。
- 更新训练数据的权值分布:
- 在权值分布为D2的情况下,阀值v取8.5时分类误差率最低,故基本分类器G2(x)=sign(x-8.5)。
- G2(x)在训练数据集上的误差率e2=0.07143+0.07143+0.07143+0.07143,第4,5,6个实例被错误分类。
- 计算G2(x)的系数:α2=0.6496。
- 更新训练数据的权值分布:
- 在权值分布为D3的情况下,阀值v取5.5时分类误差率最低,故基本分类器G3(x)=-sign(x-5.5),注意,这里符号反向了。
- G3(x)在训练数据集上的误差率e3=0.0455+0.0455+0.0455+0.0455=0.1820,第1,2,3,10个实例被误分类。
- 计算G3(x)的系数:α2=0.7514。
- 更新训练数据的权值分布:
AdaBoost算法的训练误差分析
当G(xi) ≠yi时,I(G(xi) ≠yi)=1,yif(xi) < 0,因而exp(-yif(xi)) ≥1,所以 成立;
。
由Zm的定义式(公式 5)得
如果存在γ>0,对所有m有γm≥γ,则
提升方法(boosting)详解相关推荐
- BAT 都在用的方法,详解 A/B 测试的那些坑!
作者|蚂蚁金服人工智能部产品经理 范磊 本文首发|微信公众号 友盟数据服务 (ID:umengcom),转载请注明出处 If you are not running experiments,you a ...
- 数据训练营|BAT都在用的方法,详解A/B测试的那些坑!
作者|蚂蚁金服人工智能部产品经理 范磊 本文首发|微信公众号 友盟数据服务 (ID:umengcom),转载请注明出处 If you are not running experiments,you a ...
- golang导入git包_使用go module导入本地包的方法教程详解
go module 是Go1.11版本之后官方推出的版本管理工具,并且从 Go1.13 版本开始, go module 将是Go语言默认的依赖管理工具.到今天 Go1.14 版本推出之后 Go mod ...
- java condition详解_Java使用Condition控制线程通信的方法实例详解
Java使用Condition控制线程通信的方法实例详解 发布于 2020-4-20| 复制链接 摘记: 本文实例讲述了Java使用Condition控制线程通信的方法.分享给大家供大家参考,具体如下 ...
- python怎么画条形图-python绘制条形图方法代码详解
1.首先要绘制一个简单的条形图 import numpy as np import matplotlib.pyplot as plt from matplotlib import mlab from ...
- python装饰器函数-Python函数装饰器常见使用方法实例详解
本文实例讲述了Python函数装饰器常见使用方法.分享给大家供大家参考,具体如下: 一.装饰器 首先,我们要了解到什么是开放封闭式原则? 软件一旦上线后,对修改源代码是封闭的,对功能的扩张是开放的,所 ...
- batchnorm2d参数 torch_pytorch方法测试详解——归一化(BatchNorm2d)
测试代码: import torch import torch.nn as nn m = nn.BatchNorm2d(2,affine=True) #权重w和偏重将被使用 input = torch ...
- android+发邮件,Android发送邮件的方法实例详解
Android发送邮件的方法实例详解 时间:2021-05-20 本文实例讲述了Android发送邮件的方法.分享给大家供大家参考,具体如下: 在android手机中实现发送邮件的功能也是不可缺少的. ...
- java servlet init方法_JSP开发Servlet重写init()方法实例详解
jsp开发servlet重写init()方法实例详解 写一个servlet时,有时需要我们重写该servlet的初始化方法,然后,究竟是重写init(servletconfig config),还是重 ...
最新文章
- python3 pip 更换国内 pypi 镜像 源
- datagrid出现相同两组数据_stata 数据操作基础知识:以一篇论文数据操作为例
- Python3之打印出map结果的print(list())用法
- python计时器代码_用Python写计时器
- java获取页面标签_java获取网页源代码后,提取标签内容……
- 【Flink】FLink checkpont 界面显示的含义
- ASP.NET MVC View使用Conditional compilation symbols
- MySQL:浅析 Impossible WHERE noticed after reading const tables
- 机器学习篇01:在线学习的支持向量机算法学习笔记
- python学习之路---day12
- vue-router的beforeEach的使用?
- moodle 中文文件名无法打开和下载问题
- 根据Word模板动态生成PDF
- #Geek Talk# 董飞老师同大家一起聊聊斯坦福创业课程CS183C
- Vue中显示echarts北京公交路线
- TypeError: xx takes 1 positional argument but 4 were given
- python发牌代码十点半_Python制作扑克牌发牌程序,另含大量Python代码!
- 光线追踪 — 光照模型
- 2021年在vue中使用 Google Map
- sql之浅谈视图的作用