机器学习---Boosting

1. Boosting算法

Boosting思想源于三个臭皮匠,胜过诸葛亮。找到许多粗略的经验法则比找到一个单一的、高度预

测的规则要容易得多,也更有效。

预测明天是晴是雨?传统观念:依赖于专家系统(A perfect Expert)

以“人无完人”为基础,结合普通reporter,获得完美专家。

弱学习机(weak learner):  对一定分布的训练样本给出假设(仅仅强于随机猜测),根据有云猜测

可能会下雨。强学习机(strong learner): 根据得到的弱学习机和相应的权重给出假设(最大程度上

符合实际情况:almost perfect expert),根据CNN、ABC、CBS以往的预测表现及实际天气情况作

出综合准确的天气预测。

 

 

Boosting算法流程:

①原始训练集输入,带有原始分布

②给出训练集中各样本的权重

③将改变分布后的训练集输入已知的弱学习机,弱学习机对每个样本给出假设

④对此次的弱学习机给出权重

⑤转到②, 直到循环到达一定次数或者某度量标准符合要求

⑥将弱学习机按其相应的权重加权组合形成强学习机

样本的权重:没有先验知识的情况下,初始的分布应为等概分布,也就是训练集如果有N个样本,

每个样本的分布概率为1/N,每次循环一后提高错误样本的分布概率,分错样本在训练集中所占权

重增大, 使得下一次循环的弱学习机能够集中力量对这些错误样本进行判断。

弱学习机的权重:准确率越高的弱学习机权重越高。

循环控制:损失函数达到最小,在强学习机的组合中增加一个加权的弱学习机,使准确率提高,损

失函数值减小。

2. 算法思想

训练集

Dt为第t次循环时的训练样本分布(每个样本在训练集中所占的概率, Dt总和应该为1)。

ht:X∈{-1,+1} 为第t次循环时的Weak learner,对每个样本给出相应的假设,应该满足强于随机猜

测:

wtht的权重,t次循环得到的Strong learner。

思想:提高分错样本的权重

反映了strong learner对样本的假设是否正确。

      采用什么样的函数形式?

思想:错误率越低,该学习机的权重应该越大

为学习机的错误概率,采用什么样的函数形式?

和指数函数遥相呼应:

算法伪代码:

3. 理论分析 

如何求弱学习机的权重?

最基本的损失函数表达形式:

为了便于计算,采用以下的目标函数:

Boosting的循环过程就是沿着损失函数的负梯度方向进行最优化的过程。通过调整样本分布Dt和选

择弱学习机权重wt来达到这个目的。每循环一次,增加一项,使损失函数以最快速度下降。

给定当前分布和选定的弱学习机,如何求下一次的分布? 

Boosting的设计思想:

改变分布,提高错误样本概率,使下一次的弱学习机能够集中精力针对那些困难样本。

调整分布后的训练集对当前学习机具有最大的随机性,正确率50%(恰好为随机猜测)。

相对熵原理(最小鉴别信息原理):

已知随机变量X(样本集)的先验分布(Dt),并且已知所求未知分布Dt+1满足条件

,那么所求得的未知分布估计值具有如下形式:

 。

物理意义:在只掌握部分信息的情况下要对分布作出判断时,应该选取符合约束条件但熵值取得最

大概率分布。从先验分布到未知分布的计算应该取满足已知条件,不确定度(熵)变化最小的解。

人脸识别方面的应用:

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Reinfocement Learning 学习笔记PartⅠ

文章目录 Reinfocement Learning一、基本概念二、贝尔曼公式(bellman equation)2.1 为什么return重要2.2 state value function的定义2.3 贝尔曼公式推导2.4 如何求解贝尔曼公式2.5 Action value的定义 三、贝尔曼最优公式(bellman optimalit…

HarmonyOS—实现UserDataAbility

UserDataAbility接收其他应用发送的请求,提供外部程序访问的入口,从而实现应用间的数据访问。Data提供了文件存储和数据库存储两组接口供用户使用。 文件存储 开发者需要在Data中重写FileDescriptoropenFile(Uriuri,Stringmode)方法来操作文件&#xf…

在做题中学习(32):只出现一次的数字 III

260. 只出现一次的数字 III - 力扣(LeetCode) 根据题目可知:有两个元素只出现一次,其余出现两次。 而在只出现一次的数字 I 里,只有一个元素出现一次,可以用异或的方式直接得到最后的答案,而此…

PaddleOCR:超越人眼识别率的AI文字识别神器

在当今人工智能技术已经渗透到各个领域。其中,OCR(Optical Character Recognition)技术将图像中的文字转化为可编辑的文本,为众多行业带来了极大的便利。PaddleOCR是一款由百度研发的OCR开源工具,具有极高的准确率和易…

Linux嵌入式配置USB鼠标支持+触摸板

在linux嵌入式中加入鼠标支持,首先在内核里面将mice驱动加入编译,这里用到的是usb所以还要有usb的支持,下载到板子上启动 1、定位鼠标 要用鼠标,首先要知道生成的鼠标设备是哪个,直接直接ls input目录,当…

2023.12.6-12.11 黑马知行教育项目实战,访问咨询意向线索主题

目录 简单介绍: 一.项目背景介绍 二.项目架构介绍 三.项目内容 3.1访问和咨询分析主题: 3.1.1 表与表之间的关联 3.1.2访问咨询主题需求汇总:最终需在ADS层制作六张表 3.1.3 访问咨询DWS大宽表建表与导入数据 3.2意向线索主题需求分析 3.2.1意向线索主题需求汇总:最终需在…

【数据结构(六)】希尔排序、快速排序、归并排序、基数排序的代码实现(3)

文章目录 1. 希尔排序1.1. 简单插入排序存在的问题1.2. 相关概念1.3. 应用实例1.3.1. 交换法1.3.1.1. 逐步推导实现方式1.3.1.2. 通用实现方式1.3.1.3. 计算时间复杂度 1.3.2. 移动法 2. 快速排序2.1. 相关概念2.2. 实例应用2.2.1. 思路分析2.2.2. 代码实现 2.3. 计算快速排序的…

华清远见作业第二十五天

使用三个程序来完成输出ABCABCABCABCABC #include <stdio.h> #include <unistd.h> #include <sys/types.h> #include <sys/wait.h> #include <sys/sem.h>#define NUM_SEMS 3 // 信号量集中的信号量数量union semun {int val;struct semid_ds *…

隔离电源与非隔离式电源

开关电源 文章目录 开关电源前言一、它们之间的区别是什么&#xff1f;二、如何区分它们呢&#xff1f;三、隔离电源与非隔离电源的优缺点四、隔离电源与非隔离电源的选择总结 前言 在产品设计时&#xff0c;倘若没有考虑应用环境对电源隔离的要求&#xff0c;产品到了应用时就…

Linux服务器安装vim命令

1、查看是否安装vim命令 vim /etc/hosts2、检查系统中是否存在安装包 rpm -qa|grep vim2、 安装vim yum -y install vim*4、测试是否安装成功 vim /etc/hosts

深度学习——第3章 Python程序设计语言(3.7 matplotlib库)

3.7 matplotlib库 目录 1 matplotlib库简介 2 pyplot的plot函数 3 matplotlib基础绘图函数示例 数据可视化有助于深度理解数据。 本节介绍绘制图形的基本方法。 1. matplotlib库简介 matplotlib官网 1.1 matplotlib库概述 matplotlib是Python优秀的数据可视化第三方库&a…

Python 神奇解码器:pyWhat 库全面指南

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 在当今数字化的世界中&#xff0c;理解和处理文本数据是许多应用程序的关键任务。而PyWhat库作为一个用于处理文本的Python库&#xff0c;提供了强大的功能&#xff0c;帮助开发者在文本中识别和提取有意义的信息…

【Qt开发流程】之2D绘图1:概述及基本绘制与填充和渐变填充

概述 Qt的绘图系统可以使用相同的API在屏幕和打印设备上进行绘图&#xff0c;并且主要基于QPainter, QPaintDevice和QPaintEngine类。 QPainter用于执行绘图操作&#xff0c;QPaintDevice是一个二维空间的抽象&#xff0c;可以使用QPainter在其上绘制&#xff0c;QPaintEngine…

Mybatis核心配置文件加载流程详解

Mybatis核心配置文件加载流程详解 本文将介绍MyBatis在配置文件加载的过程中&#xff0c;如何加载核心配置文件、如何解析映射文件中的SQL语句以及每条SQL语句如何与映射接口的方法进行关联。 映射配置文件 在介绍核心配置文件加载流程前&#xff0c;先给出一个简单的MyBati…

从概念到现实,2024中国式元宇宙如何落地?

前几个月&#xff0c;马斯克和扎克伯格隔空约架愈演愈烈&#xff0c;网友拱火也其乐无穷。两位顶级富豪贴身肉搏&#xff1f; 想想就刺激&#xff01; 随之&#xff0c;老马的X&#xff08;原Twitter&#xff09;和小扎的Threads&#xff08;X竞品&#xff09;也获得了颇多关注…

为什么看书或者看文章有时候晕?

我今天发现&#xff0c;当我看了一篇深度学习相关的文章&#xff08;我是0基础机器学习&#xff09; 当我尝试理解的时候&#xff0c;头就开始晕了&#xff08;也有些人是犯困&#xff09;&#xff0c;并不是你的错&#xff0c;而是因为看不懂。 仔细观察就发现&#xff0c;看…

Python从入门到精通九:Python异常、模块与包

了解异常 什么是异常 当检测到一个错误时&#xff0c;Python解释器就无法继续执行了&#xff0c;反而出现了一些错误的提示&#xff0c;这就是所谓的“异常”, 也就是我们常说的BUG bug单词的诞生 早期计算机采用大量继电器工作&#xff0c;马克二型计算机就是这样的。 19…

Java实现插入排序及其动图演示

插入排序是一种简单直观的排序算法。它的基本思想是将一个待排序的元素插入到已经排序好的序列中的适当位置&#xff0c;从而得到一个新的、元素个数加一的有序序列。 具体的插入排序算法过程如下&#xff1a; 从第一个元素开始&#xff0c;认为第一个元素已经是有序序列。取…

Jmeter场景设置与监听

Jmeter场景设置 场景的概念: 场景是用来尽量真实模拟用户操作的工作单元&#xff0c;场景设计源自于用户真实操作。 场景设计: 场景设计是根据收集分析用户的实际操作而定义的Jmeter脚本的执行策略。 性能测试中涉及的基本场景有两种&#xff0c;即单一业务场景和混合业务场景…

js 有关递归简单介绍

递归&#xff1a;指调用自身的函数 重点&#xff1a;递归函数必须有可以终止递归调用的语句&#xff0c;否则会导致内存溢出 递归的性能不好&#xff0c;因为在递归终止前&#xff0c;JavaScript引擎会为每一次递归分配一块内存以存储栈帧&#xff0c;随着递归的深入&#xff…