【机器学习算法】Adaboost原理及实现

Adaboost

一、基本内容

[!note]

实现思路:在每一轮训练中,记录每一次由 f ( x ) = ∑ m = 1 i − 1 α m G m ( x ) f(x) = \sum_{m=1}^{i-1}\alpha_mG_m(x) f(x)=m=1i1αmGm(x)【错误\正确】分类的样本,在加入新的弱学习器中【提高\降低】分类【错误\正确】样本的权值即改变样本的比例,类似过采样与降采样

  • 加法模型:多个弱分类器 G m ( x ) G_m(x) Gm(x)与对应权值 α m \alpha_m αm的叠加:

f ( x ) = ∑ m = 1 M α m G m ( x ) f(x) = \sum_{m=1}^M\alpha_mG_m(x) f(x)=m=1MαmGm(x)

  • 样本权值的初始设计(权值平等):

w 1 , i = 1 N w_{1,i}=\frac{1}{N} w1,i=N1

  • 二分类损失函数,指数损失函数

L ( y , f ( x ) ) = e x p [ − y f ( x ) ] = e x p [ − y ⋅ ( f m − 1 ( x i ) + α m G m ( x ) ) ] L(y,f(x)) = exp[-yf(x)]=exp[-y ·(f_{m-1}(x_i)+\alpha_mG_m(x))] L(y,f(x))=exp[yf(x)]=exp[y(fm1(xi)+αmGm(x))]

二、样本权值更新

​ 可以发现,指数损失函数在【正确\错误】分类的样本的值【小于\大于】1,正好符合Adaboost加法模型的实现思路,在加入新的弱学习器中【提高\降低】分类【错误\正确】样本的权值,所以第 m m m个弱分类器,第 i i i个样本的权值更新可以设计为:
ω m , i = e x p [ − y i f m − 1 ( x i ) ] \omega_{m,i} = exp[-y_if_{m-1}(x_i)] ωm,i=exp[yifm1(xi)]
​ 在Adaboost模型中, f m − 1 ( x i ) = a m − 1 G m − 1 f_{m-1}(x_i) = a_{m-1}G_{m-1} fm1(xi)=am1Gm1,所以,权值更新的公式为:
w m , i = e x p ( y i ( − a m − 1 ) G m − 1 ( x i ) ) w_{m,i} = exp(y_i(-a_{m-1})G_{m-1}(x_i)) wm,i=exp(yi(am1)Gm1(xi))
​ 为了加强不同弱分类器之间的依赖性,在更新权值时是在上一个弱分类器模型的基础上进行更新的:
w m , i = w m − 1 , i ⋅ e x p ( − a m − 1 y i G m − 1 ( x i ) ) w_{m,i} = w_{{m-1},i} · exp(-a_{m-1}y_iG_{m-1}(x_i)) wm,i=wm1,iexp(am1yiGm1(xi))
​ 最后加入 Z m − 1 Z_{m-1} Zm1,得到最终的权值更新式子:
w m , i = w m − 1 , i z m − 1 e x p ( − a m − 1 y i G m − 1 ( x i ) ) w_{m,i} = \frac{w_{m-1,i}}{z_{m-1}}exp(-a_{m-1}y_iG_{m-1}(x_i)) wm,i=zm1wm1,iexp(am1yiGm1(xi))
​ 其中,规范化因子 Z m − 1 Z_{m-1} Zm1表示为:
Z m − 1 = ∑ i = 1 N ω m − 1 , i e x p ( − a m − 1 y i G m − 1 ( x i ) ) Z_{m-1} = \sum_{i=1}^{N}\omega_{m-1,i}exp(-a_{m-1}y_iG_{m-1}(x_i)) Zm1=i=1Nωm1,iexp(am1yiGm1(xi))

[!important]

分类正确时, y i = G m − 1 ( x i ) y_i=G_{m-1}(x_i) yi=Gm1(xi), e x p ( − a m − 1 y i G m − 1 ( x i ) ) = e x p ( − a m − 1 ) < 1 exp(-a_{m-1}y_iG_{m-1}(x_i))=exp(-a_{m-1}) < 1 exp(am1yiGm1(xi))=exp(am1)<1, 其中 a m − 1 > 1 a_{m-1}>1 am1>1,对应正确样本的权值会减少,同理当错误分类时, e x p ( − a m − 1 ) > 1 exp(-a_{m-1}) > 1 exp(am1)>1,对应样本的权值增加

三、弱分类器权值更新

​ 目标损失函数:
L ( y , f ( x ) ) = e x p [ − y f ( x ) ] = e x p [ − y ⋅ ( f m − 1 ( x i ) + α m G m ( x ) ) ] L(y,f(x)) = exp[-yf(x)]=exp[-y ·(f_{m-1}(x_i)+\alpha_mG_m(x))] L(y,f(x))=exp[yf(x)]=exp[y(fm1(xi)+αmGm(x))]
​ 在模型优化更新权重的过程中,并不是与传统模型一样采用梯度下降法,因为弱分类器的数量多,更新的参数多,难以实现,在Adaboost模型中采用的前向分布算法,只更新当前弱分类器 G m G_m Gm的参数,优化目标:
( a m , G m ( x ) = a r g m a x a , G ∑ i = 1 N e x p [ − y i ( f m − 1 ( x i ) + α G m ( x i ) ) ] ) (a_m,G_m(x) = argmax_{a,G} \sum_{i=1}^Nexp[-y_i(f_{m-1}(x_i) + \alpha G_m(x_i))]) (am,Gm(x)=argmaxa,Gi=1Nexp[yi(fm1(xi)+αGm(xi))])
​ 对 a a a求导的结果,表示损失最小的 α \alpha α
α 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

​ 其中 e m e_m em表示误差率:
e m ′ = ∑ i = 1 N P ( G m ( x i ≠ y i ) ) = ∑ i = 1 N ω m i I ( G m ( x i ≠ y i ) ) = ∑ G m ( x i ) ≠ y i ω m i e_m' = \sum_{i=1}^N P(G_m(x_i \neq y_i))= \sum_{i=1}^N\omega_{mi}I(G_m(x_i \neq y_i))= \sum_{G_m(x_i) \neq y_i}\omega_{mi} em=i=1NP(Gm(xi=yi))=i=1NωmiI(Gm(xi=yi))=Gm(xi)=yiωmi

​ 最后还需要实现归一化:
e m = ∑ G m ( x i ) ≠ y i ω m i ∑ i = 1 N ω i m e_m = \frac{\sum_{G_m(x_i) \neq y_i}\omega_{mi}}{\sum_{i=1}^N}\omega_i^{m} em=i=1NGm(xi)=yiωmiωim

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

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

相关文章

深度学习实战老照片上色

目录 1.研究背景与意义1. 卷积神经网络&#xff08;CNN&#xff09;在老照片上色中的应用1.1 卷积层与特征提取1.2 颜色空间转换1.3 损失函数与训练优化 2. 生成对抗网络&#xff08;GAN&#xff09;在老照片上色中的应用2.1 生成器与判别器2.2 对抗训练2.3 条件生成对抗网络&a…

C#面向对象,封装、继承、多态、委托与事件实例

一&#xff0e;面向对象封装性编程 创建一个控制台应用程序&#xff0c;要求&#xff1a; 1&#xff0e;定义一个服装类&#xff08;Cloth&#xff09;&#xff0c;具体要求如下 &#xff08;1&#xff09;包含3个字段&#xff1a;服装品牌&#xff08;mark&#xff09;,服装…

养老院、学校用 安科瑞AAFD-40Z单相电能监测故障电弧探测器

安科瑞戴婷 Acrel-Fanny 安科瑞单相电能监测故障电弧探测器对接入线路中的故障电弧&#xff08;包括故障并联电弧、故障串联电弧&#xff09;进行有效的检测&#xff0c;当检测到线路中存在引起火灾的故障电弧时&#xff0c;探测器可以进行现场的声光报警&#xff0c;并将报警…

PAT甲级 1056 Mice and Rice(25)

文章目录 题目题目大意基本思路AC代码总结 题目 原题链接 题目大意 给定参赛的老鼠数量为NP&#xff0c;每NG只老鼠分为一组&#xff0c;组中最胖的老鼠获胜&#xff0c;并进入下一轮&#xff0c;所有在本回合中失败的老鼠排名都相同&#xff0c;获胜的老鼠继续每NG只一组&am…

[SWPUCTF 2021 新生赛]include

参考博客: 文件包含 [SWPUCTF 2021 新生赛]include-CSDN博客 NSSCTF | [SWPUCTF 2021 新生赛]include-CSDN博客 考点:php伪协议和文件包含 PHP伪协议详解-CSDN博客 php://filter php://filter可以获取指定文件源码。当它与包含函数结合时&#xff0c;php://filter流会被当…

spring boot3.3.5 logback-spring.xml 配置

新建 resources/logback-spring.xml 控制台输出颜色有点花 可以自己更改 <?xml version"1.0" encoding"UTF-8"?> <!--关闭文件扫描 scanfalse --> <configuration debug"false" scan"false"><springProperty …

Unity shaderlab 实现LineSDF

实现效果&#xff1a; 实现代码&#xff1a; Shader "Custom/LineSDF" {Properties{}SubShader{Tags { "RenderType""Opaque" }Pass{CGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"struct appdata{floa…

PHP 去掉特殊不可见字符 “\u200e“

描述 最近在排查网站业务时&#xff0c;发现有数据匹配失败的情况 肉眼上完全看不出问题所在 当把字符串 【M24308/23-14F‎】复制出来发现 末尾有个不可见的字符 使用删除键或左右移动时才会发现 最后测试通过 var_dump 打印 发现这个"空字符"占了三个长度 &#xf…

Web会话安全测试

Web会话安全测试 - 知乎 1、会话ID不可预测性 【要求】 会话ID必须采用安全随机算法&#xff08;如SecureRandom&#xff09;生成&#xff0c;并且强度不得低于256位&#xff08;32字符&#xff09;&#xff0c;如采用Tomcat原生JSESSIONID【描述】 密码与证书等认证手段&…

springboot336社区物资交易互助平台pf(论文+源码)_kaic

毕 业 设 计&#xff08;论 文&#xff09; 社区物资交易互助平台设计与实现 摘 要 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff…

富文本编辑器图片上传并回显

1.概述 在代码业务需求中&#xff0c;我们会经常涉及到文件上传的功能&#xff0c;通常来说&#xff0c;我们存储文件是不能直接存储到数 据库中的&#xff0c;而是以文件路径存储到数据库中&#xff1b;但是存储文件的路径到数据库中又会有一定的问题&#xff0c;就是 浏览…

结构体详解+代码展示

系列文章目录 &#x1f388; &#x1f388; 我的CSDN主页:OTWOL的主页&#xff0c;欢迎&#xff01;&#xff01;&#xff01;&#x1f44b;&#x1f3fc;&#x1f44b;&#x1f3fc; &#x1f389;&#x1f389;我的C语言初阶合集&#xff1a;C语言初阶合集&#xff0c;希望能…

学习ASP.NET Core的身份认证(基于Session的身份认证1)

ASP.NET Core使用Session也可以实现身份认证&#xff0c;关于Session的介绍请见参考文献5。基于Session的身份认证大致原理就是用户验证成功后将用户信息保存到Session中&#xff0c;然后在其它控制器中从Session中获取用户信息&#xff0c;用户退出时清空Session数据。百度基于…

题目 3209: 蓝桥杯2024年第十五届省赛真题-好数

一个整数如果按从低位到高位的顺序&#xff0c;奇数位&#xff08;个位、百位、万位 &#xff09;上的数字是奇数&#xff0c;偶数位&#xff08;十位、千位、十万位 &#xff09;上的数字是偶数&#xff0c;我们就称之为“好数”。给定一个正整数 N&#xff0c;请计算从…

人工智能如何改变你的生活?

在我们所处的这个快节奏的世界里&#xff0c;科技融入日常生活已然成为司空见惯的事&#xff0c;并且切实成为了我们生活的一部分。在这场科技变革中&#xff0c;最具变革性的角色之一便是人工智能&#xff08;AI&#xff09;。从我们清晨醒来直至夜晚入睡&#xff0c;人工智能…

MATLAB - ROS2 ros2genmsg 生成自定义消息(msg/srv...)

系列文章目录 前言 语法 ros2genmsg(folderpath)ros2genmsg(folderpath,NameValue) 一、说明 ros2genmsg(folderpath) 通过读取指定文件夹路径下的 ROS 2 自定义信息和服务定义来生成 ROS 2 自定义信息。函数文件夹必须包含一个或多个 ROS 2 软件包。这些软件包包含 .msg 文件…

LeetCode:19.删除链表倒数第N个节点

跟着carl学算法&#xff0c;本系列博客仅做个人记录&#xff0c;建议大家都去看carl本人的博客&#xff0c;写的真的很好的&#xff01; 代码随想录 LeetCode&#xff1a;19.删除链表倒数第N个节点 给你一个链表&#xff0c;删除链表的倒数第 n 个结点&#xff0c;并且返回链表…

探索光耦:光耦安全标准解读——确保设备隔离与安全的重要规范

在现代科技日新月异的今天&#xff0c;光耦&#xff08;光电耦合器&#xff09;作为电子设备中不可或缺的隔离元件&#xff0c;其重要性不言而喻。它不仅在电源调控、工业自动化及医疗设备等关键领域大显身手&#xff0c;更是确保系统电气隔离与运行稳定的守护神。特别是在保障…

ubuntu+ROS推视频流至网络

目录 概述 工具 ros_rtsp 接受流 web_video_server 源码安装 二进制安装 ros接收rtsp视频流 总结 概述 ros_rtsp功能包可以将ros视频流以rtsp形式推送 web_video_server功能包可以将ros视频话题推HTTP流 rocon_rtsp_camera_relay可以接受同一网段下的rtsp视频流输出为…

如何在Python中进行数学建模?

数学建模是数据科学中使用的强大工具&#xff0c;通过数学方程和算法来表示真实世界的系统和现象。Python拥有丰富的库生态系统&#xff0c;为开发和实现数学模型提供了一个很好的平台。本文将指导您完成Python中的数学建模过程&#xff0c;重点关注数据科学中的应用。 数学建…