机器学习-决策树系列-Adaboost算法-集成学习-29
1. adaboost算法的基本思想
集成学习是将多个弱模型集成在一起 变成一个强模型 提高模型的准确率,一般有如下两种:
bagging: 不同的base model可以并行计算,输出预测结果少数服从多数,回归问题则对多个模型输出的结果求平均。
boosting:后一个模型的训练需要依赖前一个模型,所以模型的训练会特备耗时没法并行,Adaboost、GBDT、Xgboost主要有这三种。
对样本赋予权重,迭代的方式构造弱分类器,后一个分类器依赖前一个分类器 。
多个弱分类器的线性组合得到最终的强分类器。

例如:



对于前一个分类器分错的样本,后一个分类器会格外的注重,训练的时候增加该样本的权重,以便这次训练的时候要分对,训练模型的同时 计算出本次的弱模型输出结果的权重

算法的核心:通过调整输入数据的权重,让本来还不错的分类器的权重正确率达到1/2
什么是权重正确率?
数据预测的错误率 =(错误数据的个数)/(全部数据的个数)
数据预测的权重错误率 =(预测错误数据的权重和)/(全部数据的权重和)
举例:
有一个标签集实际是{+1,+1,+1,+1,-1}
训练出一个g1(x)的分类结果{+1,+1,+1,+1,+1}
最后一个分出错了,如果这5条样本的权重是一样的 错误率=1/5
如果最后那个样本的权重是1/2 其余的是1/8 那么权重错误率是多少? 1/2
1/2 / 1/2+1/8+1/8+1/8+1/8
也就是说做错的那道题分数分其他的题是不一样的 越难的题分数越高
2. 具体实现
通过权重不同来训练弱分类器模型gt(x),那么我们每次找到g(x)都应该使当前时刻权重正确率最大。



调整t+1次训练的样本的权重 使得: 正确率(带权重的) 等于 错误率(带权重)
如何调整?引入缩放因子
t+1 样本权重的计算:

Δt 一般是一个大于1的数
对于分类正确的样本 权重除以Δt
对于分类错误的样本 权重乘以Δt
本次的弱模型输出权重:
也就是:α=ln(Δt)

U1 到 U2 是如何计算的
过程:

机器学习-决策树系列-Adaboost算法-集成学习-29的更多相关文章
- 基于单层决策树的AdaBoost算法源码
基于单层决策树的AdaBoost算法源码 Mian.py # -*- coding: utf-8 -*- # coding: UTF-8 import numpy as np from AdaBoos ...
- 机器学习笔记(九)---- 集成学习(ensemble learning)【华为云技术分享】
集成学习不是一种具体的算法,而是在机器学习中为了提升预测精度而采取的一种或多种策略.其原理是通过构建多个弱监督模型并使用一定策略得到一个更好更全面的强监督模型.集成学习简单的示例图如下: 通过训练得到 ...
- 机器学习实战之AdaBoost算法
一,引言 前面几章的介绍了几种分类算法,当然各有优缺.如果将这些不同的分类器组合起来,就构成了我们今天要介绍的集成方法或者说元算法.集成方法有多种形式:可以使多种算法的集成,也可以是一种算法在不同设置 ...
- 基于单层决策树的AdaBoost算法原理+python实现
这里整理一下实验课实现的基于单层决策树的弱分类器的AdaBoost算法. 由于是初学,实验课在找资料的时候看到别人的代码中有太多英文的缩写,不容易看懂,而且还要同时看代码实现的细节.算法的原理什么的, ...
- 机器学习——提升方法AdaBoost算法,推导过程
0提升的基本方法 对于分类的问题,给定一个训练样本集,求比较粗糙的分类规则(弱分类器)要比求精确的分类的分类规则(强分类器)容易的多.提升的方法就是从弱分类器算法出发,反复学习,得到一系列弱分类器(又 ...
- 《机器学习技法》---AdaBoost算法
1 AdaBoost的推导 首先,直接给出AdaBoost算法的核心思想是:在原数据集上经过取样,来生成不同的弱分类器,最终再把这些弱分类器聚合起来. 关键问题有如下几个: (1)取样怎样用数学方式表 ...
- 机器学习-决策树之ID3算法
概述 决策树(Decision Tree)是一种非参数的有监督学习方法,它是一种树形结构,所以叫决策树.它能够从一系列有特征和标签的数据中总结出决策规则,并用树状图的结构来呈现这些规则,以解决分类和回 ...
- 《机器学习实战》AdaBoost算法(手稿+代码)
Adaboost:多个弱分类器组成一个强分类器,按照每个弱分类器的作用大小给予不同的权重 一.Adaboost理论部分 1.1 adaboost运行过程 注释:算法是利用指数函数降低误差,运行过程通过 ...
- 机器学习--聚类系列--DBSCAN算法
DBSCAN算法 基本概念:(Density-Based Spatial Clustering of Applications with Noise) 核心对象:若某个点的密度达到算法设定的阈值则其为 ...
- 机器学习--聚类系列--K-means算法
一.聚类 聚类分析是非监督学习的很重要的领域.所谓非监督学习,就是数据是没有类别标记的,算法要从对原始数据的探索中提取出一定的规律.而聚类分析就是试图将数据集中的样本划分为若干个不相交的子集,每个子集 ...
随机推荐
- .NET8 AOT和JIT的性能,谁更高呢?
一: 有人问:.NET8 AOT和JIT的性能,谁更高呢? 原文:.NET8 AOT和JIT的性能,谁更高呢? 其实这个答案非常明显,那就是JIT的性能更高.为什么?原因在哪?因为JIT是随时可能分层 ...
- 玩转 K8s 权限控制:RBAC + kubeconfig 搞定 kubectl 权限管理那些事
1. 先抛需求 当一个 K8s 集群需要被多个租户共享时,就涉及到了权限问题,比如你是管理员,这时候你会面临着"给每个用户分配一个 Namespace"类似的需求. 更进一步,可能 ...
- django-celery-results - 使用 Django ORM/Cache 作为结果后端
https://docs.celeryq.dev/en/stable/django/first-steps-with-django.html#django-celery-results-using-t ...
- 万界星空科技仓库管理wms系统
企业在管理库存时,尤其是生产制造企业,使用传统方式比如纸笔.Excel 管理库存,由于工具和信息化存在局限,导致在管理库存时出现如下问题: 1.通过纸笔记录出入库申请,人为手动计算易出错,数据易丢 ...
- libGDX游戏开发之按轨迹移动(十一)
libGDX游戏开发之运动轨迹绘制(十一) libGDX系列,游戏开发有unity3D巴拉巴拉的,为啥还用java开发?因为我是Java程序员emm-国内用libgdx比较少,多数情况需要去官网和go ...
- electron入门之创建新窗口remote(一)
electron入门到入土,从渲染线程中创建新窗口.2022-03-21入门版本17.1.2 electron重要概念,只有一个主线程,其他都是渲染进程或者叫子线程,他们不能直接相互操作,可以通过ip ...
- Luogu P5515 [MtOI2019]灵梦的计算器
简化题意 给定三个实数 \(n, a, b\),求方程 \(\left \lfloor {x ^ a + x ^ b} \right \rfloor = \left \lfloor {n ^ a + ...
- Spring源码学习笔记3——根据BeanDefinition实例化Bean的前置准备
一丶前言 笔记1和笔记2中我们分析了如何根据xml和注解加载生成BeanDefinition,并注册到BeanFactory,接下载便是Bean的加载,在加载之前会进行一些前置准备 二丶前置准备 和B ...
- Provider的八种提供者
代码 class Example extends StatelessWidget { @override Widget build(BuildContext context) { return Sca ...
- 窗口到底有多滑动?揭秘TCP/IP滑动窗口的工作原理
本文分享自华为云社区<窗口到底有多滑动?揭秘TCP/IP滑动窗口的工作原理>,作者: Lion Long. 当涉及网络性能优化和数据传输可靠性时,TCP/IP滑动窗口是一个关键的技术.本文 ...