AdaBoost提升方法

提升方法的基本思想是通过改变训练样本的权重学习多个分类器,并将这些线性分类器进行线性组合,提高分类性能。

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)},其中 x i ∈ X ⊆ R n x_i\in X \subseteq R^n xiXRn y i ∈ Y ⊆ { − 1 , 1 } y_i\in Y \subseteq\{-1,1\} yiY{1,1};弱学习算法。
输出:最终分类器 G ( n ) G(n) G(n)

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

  2. m = 1 , 2 , . . . , M m=1,2,...,M m=1,2,...,M

    • 使用具有权值分布 D m D_m Dm的训练集学习,得到基本分类器:
      G m ( x ) : X ⟶ { − 1 , 1 } G_m(x):X\longrightarrow\{-1,1\} Gm(x):X{1,1}
    • 计算 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 ) = ∑ G m ( x i ) ≠ y i w m i e_m=\sum_{i=1}^{N}P(G_m(x_i)\neq y_i)\\=\sum_{i=1}^{N}w_miI(G_m(x_i)\neq y_i)\\=\sum_{G_m(x_i)\neq y_i}w_mi em=i=1NP(Gm(xi)=yi)=i=1NwmiI(Gm(xi)=yi)=Gm(xi)=yiwmi
    • 计算 G m ( x ) G_m(x) Gm(x)的系数:
      α m = 1 2 l o g 1 − e m e m \alpha_{m}=\frac{1}{2}log\frac{1-e_m}{e_m} αm=21logem1em
    • 更新训练集的权值分布
      D m + 1 = ( w m + 1 , 1 , . . . , w m + 1 , i , . . . , w m + 1 , N ) D_{m+1}=(w_{m+1,1},...,w_{m+1,i},...,w_{m+1,N}) Dm+1=(wm+1,1,...,wm+1,i,...,wm+1,N)
      w m + 1 , i = w m , i Z m e x p ( − α m y i G m ( x i ) ) , i = 1 , 2 , . . . , N w_{m+1,i}=\frac{w_{m,i}}{Z_m}exp(-\alpha_{m}y_{i}G_{m}(x_i)),{i=1,2,...,N} wm+1,i=Zmwm,iexp(αmyiGm(xi)),i=1,2,...,N
      其中 Z m Z_m Zm是规范化因子
      Z m = ∑ i = 1 N w m , i e x p ( − α m y i G m ( x i ) ) Z_m=\sum_{i=1}^{N}w_{m,i}exp(-\alpha_{m}y_{i}G_{m}(x_i)) Zm=i=1Nwm,iexp(αmyiGm(xi))
      它使得 D m + 1 D_{m+1} Dm+1成为一个概率分布,即 ∑ i = 1 N w m , i = 1 \sum_{i=1}^{N}w_{m,i}=1 i=1Nwm,i=1
  3. 构建基本分类器的线性组合
    f ( x ) = ∑ m + 1 M α m G m ( x ) f(x)=\sum_{m+1}^{M}\alpha_{m}G_{m}(x) f(x)=m+1MαmGm(x)
    得到最终分类器
    G ( x ) = s i g n ( f ( x ) ) = s i g n ( ∑ m = 1 M α m G m ( x ) ) G(x)=sign(f(x))=sign(\sum_{m=1}^{M}\alpha_{m}G_{m}(x)) G(x)=sign(f(x))=sign(m=1MαmGm(x))
    注:式①可写成
    w m + 1 , i = { w m , i Z m e − α m , G m ( x i ) = y i w m , i Z m e α m , G m ( x i ) ≠ y i w_{m+1,i}=\left\{\begin{aligned}\frac{w_{m,i}}{Z_m}e^{-\alpha_m},G_{m}(x_i)=y_i\\\frac{w_{m,i}}{Z_m}e^{\alpha_m},G_{m}(x_i)\neq y_i\\\end{aligned} \right. wm+1,i= Zmwm,ieαm,Gm(xi)=yiZmwm,ieαm,Gm(xi)=yi
    可知误分类样本在每一轮学习后权重会被放大 e 2 α m = 1 − e m e m e^{2\alpha_m}=\frac{1-e_m}{e_m} e2αm=em1em倍,系数 α m \alpha_m αm表示分类器 G m ( x ) G_m(x) Gm(x)的重要性,所有 α m \alpha_m αm之和并不等于1。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/235646.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

React学习计划-React16--React基础(三)收集表单数据、高阶函数柯里化、类的复习

1. 收集表单数据 包含表单的组件分类 受控组件——页面中所有输入类的DOM,随着输入,把值存维护在状态里,需要用的时候去状态里取值(推荐,避免了过渡使用ref)非受控组件——页面中所有输入类的DOM,现用现取…

Java 并发编程 —— Fork/Join 框架的原理详解

目录 一. 前言 二. 并发和并行 2.1. 并发 2.2. 并行 2.3. 分治法 三. ForkJoin 并行处理框架的理论 3.1. ForkJoin 框架概述 3.2. ForkJoin 框架原理 3.3. 工作窃取算法 四. ForkJoin 并行处理框架的实现 4.1. ForkJoinPool 类 4.2. ForkJoinWorkerThread 类 4.3.…

MongoDB的原子操作findAndModify和findOneAndUpdate

本文主要介绍MongoDB的原子操作findAndModify和findOneAndUpdate。 目录 MongoDB的原子操作一、findAndModify二、findOneAndUpdate MongoDB的原子操作 MongoDB的原子操作指的是在单个操作中对数据库的数据进行读取和修改,并确保操作是原子的,即要么完全…

Swagger2之SpringBoot集成使用

前言: 我们对于Mybatis-Plus的分享较多,都是接触的一些数据库相关的知识,今天给大家带来的是Swagger2 Swagger2 1.介绍: Swagger2是一个规范和完整的框架,用于生成、描述、调用和可视化Restful风格的web服务&#xff…

pip 命令及使用

1、安装 pip install package_name 2、卸载 pip uninstall package_name 3、查看 pip list 4、更新 pip install -U package_name

【蓝桥杯】专题练习

前缀和 3956. 截断数组 - AcWing题库 一看到题目很容易想到的思路是对数组求前缀和&#xff0c;然后枚举两个分段点就好&#xff0c;时间复杂度是On^2&#xff0c;n是1e5会t&#xff0c;需要优化。 朴素的代码&#xff0c;会超时&#xff1a; #include <bits/stdc.h> u…

Python自动化神器入门

在日常生活和工作中&#xff0c;我们经常需要重复执行一些鼠标和键盘操作。今天&#xff0c;我们就来介绍一款非常实用的Python库——PyAutoGUI&#xff0c;它可以帮助我们实现鼠标和键盘的自动化操作。 一、PyAutoGUI简介 PyAutoGUI是一个用于模拟鼠标和键盘操作的Python库。…

4-高可用-限流详情

在开发高并发系统时&#xff0c;有很多手段来保护系统&#xff0c;如缓存、降级和限流等。缓存目的是提升系统访问速度和增大系统处理能力&#xff0c;可谓是抗高并发流量的银弹。 而降级是当服务出问题或者影响到核心流程的性能&#xff0c;需要暂时屏蔽掉&#xff0c;待高峰…

亚马逊云科技-如何缩容/减小您的AWS EC2根卷大小-简明教程

一、背景 Amazon EBS提供了块级存储卷以用于 EC2 实例&#xff0c;EBS具备弹性的特点&#xff0c;可以动态的增加容量、更改卷类型以及修改预配置的IOPS值。但是EBS不能动态的减少容量&#xff0c;在实际使用中&#xff0c;用户也许会存在此类场景&#xff1a; 在创建AWS EC2…

【Python】循环语句

一、while循环的基础语法 二、while循环的嵌套应用 三、while循环的嵌套案例 四、for循环的基础语法 五、for循环的嵌套应用 六、循环中断 : break和continue 一、while循环的基础语法 使用while循环的基础应用 while循环语句 while循环注意点 while的条件需得到布尔类型&am…

Web 安全之文件上传漏洞详解

目录 文件上传漏洞的类型 文件上传的攻击方式 文件上传漏洞影响 防护措施 小结 文件上传漏洞是网络安全中的常见问题&#xff0c;通常发生在网站或应用程序允许用户上传文件到服务器的场景。这类漏洞如果被攻击者利用&#xff0c;可能导致数据泄露、非法文件分发、服务器入…

高并发神经网络推理部署

高并发的神经网络推理框架部署 highport 是一款封装神经网络推理的高并发的软件架构&#xff0c;已在ESWEEK 2023年皮肤病检测比赛中获得第一名。 这里记录一下highport的软件架构和几个trick优化 软件架构图 解密模块&#xff1a;我们训练完的模型文件是带加密的&#xff0c;…

2023优秀开源项目获选榜名单(开放原子开源基金会)|JeecgBoot 成功入选

JeecgBoot 是一个开源的企业级低代码开发平台&#xff0c;它成功入选2023年度生态开源项目&#xff0c;这是对其十年坚持开源的认可。作为一个开源项目&#xff0c;JeecgBoot 在过去的十年里一直秉承着开放、共享、协作的理念&#xff0c;不断推动着开源社区的发展。 2023年开放…

在windows上如何干净的卸载一个软件及其快捷方式

可以在控制面板里面卸载&#xff0c;可以卸载掉文件夹及其快捷方式&#xff0c;具体操作如下&#xff1a; 找到-》控制面板\程序\程序和功能 然后右键某一项&#xff0c;即可出现卸载功能项。 卸载不干净的方法&#xff1a;利用软件商店卸载&#xff0c;有可能卸载失败&#x…

maven学习和maven聚合工程搭建

1.学习maven maven的概念 项目管理工具 &#xff0c;对jar进行依赖管理&#xff0c;编译&#xff0c;打包&#xff0c;单元测试&#xff0c;安装&#xff0c;部署&#xff0c;贯穿整个项目 为什么要学maven 要解决的问题&#xff1a; 不同的开发工具开发出来的项目目录结构…

网络通信day5作业

1> 使用select完成TCP客户端程序 客户端: #include<myhead.h>#define FPORT 9999 #define FIP "192.168.125.130"#define KPORT 6666 #define KIP "192.168.125.130"int main(int argc, const char *argv[]) {//创建套接字文件描述符int cfd…

Android: Ubuntu下交叉环境编译常用调试工具demo for lspci命令(ARM设备)

lspci命令交叉环境编译(ARM设备) 交叉编译工具下载&#xff1a; https://releases.linaro.org/components/toolchain/binaries https://releases.linaro.org/components/toolchain/binaries/6.3-2017.05/aarch64-linux-gnu/ lspci命令交叉环境编译(ARM设备)&#xff1a; 1&a…

js new Set()过滤重复数据

2023.12.21今天我学习了如何通过new Set&#xff08;&#xff09;方法进行过滤重复的数据。 let demo [张三,张三,李四,王五] let new_demo [...new Set(demo)]//set是过滤重复的方法

智能优化算法应用:基于梯度算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于梯度算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于梯度算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.梯度算法4.实验参数设定5.算法结果6.参考文献7.MA…

Selenium 全面介绍

Selenium 是什么&#xff1f; Selenium是一个用于自动化Web浏览器的开源工具。它支持多种编程语言&#xff0c;如Java、Python和C#等&#xff0c;可以用于模拟用户在Web应用程序上的操作&#xff0c;如点击按钮、填写表单、提交数据等。Selenium可以与各种浏览器进行集成&…