码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 二十九、【人工智能】【机器学习】【监督学习】- AdaBoost算法模型


    系列文章目录

    第一章 【机器学习】初识机器学习

    第二章 【机器学习】【监督学习】- 逻辑回归算法 (Logistic Regression)

    第三章 【机器学习】【监督学习】- 支持向量机 (SVM)

    第四章【机器学习】【监督学习】- K-近邻算法 (K-NN)

    第五章【机器学习】【监督学习】- 决策树 (Decision Trees)

    第六章【机器学习】【监督学习】- 梯度提升机 (Gradient Boosting Machine, GBM)

    第七章 【机器学习】【监督学习】-神经网络 (Neural Networks)

    第八章【机器学习】【监督学习】-卷积神经网络 (CNN)

    第九章【机器学习】【监督学习】-循环神经网络 (RNN)

    第十章【机器学习】【监督学习】-线性回归

    第十一章【机器学习】【监督学习】-局部加权线性回归 (Locally Weighted Linear Regression, LWLR)

    第十二章【机器学习】【监督学习】- 岭回归 (Ridge Regression)

    十三、【机器学习】【监督学习】- Lasso回归 (Least Absolute Shrinkage and Selection Operator)

    十四、【机器学习】【监督学习】- 弹性网回归 (Elastic Net Regression)

    十五、【机器学习】【监督学习】- 神经网络回归 

    十六、【机器学习】【监督学习】- 支持向量回归 (SVR)

    十七、【机器学习】【非监督学习】- K-均值 (K-Means) 

    十八、【机器学习】【非监督学习】- DBSCAN (Density-Based Spatial Clustering of Applications with Noise)十九、【机器学习】【非监督学习】- 层次聚类 (Hierarchical Clustering)二十、【机器学习】【非监督学习】- 均值漂移 (Mean Shift)

    二十一、【机器学习】【非监督学习】- 谱聚类 (Spectral Clustering)​​ 


    目录

    系列文章目录

    一、基本定义

    (一)、监督学习

    (二)、监督学习的基本流程

    (三)、监督学习分类算法(Classification)

    二、 AdaBoost

    (一)、定义

    (二)、基本概念

    (三)、训练过程概要

    (四)、训练过程详细解释 

    1、 初始化样本权重

    2、迭代训练弱分类器

    3、更新样本权重

    4、构建强分类器

    (五)、特点

    (六)、适用场景

    (七)、扩展

    三、总结


    一、基本定义

    (一)、监督学习

            监督学习(Supervised Learning)是机器学习中的一种主要方法,其核心思想是通过已知的输入-输出对(即带有标签的数据集)来训练模型,从而使模型能够泛化到未见的新数据上,做出正确的预测或分类。在监督学习过程中,算法“学习”的依据是这些已标记的例子,目标是找到输入特征与预期输出之间的映射关系。

    (二)、监督学习的基本流程

            数据收集:获取包含输入特征和对应正确输出标签的训练数据集。
            数据预处理:清洗数据,处理缺失值,特征选择与转换,标准化或归一化数据等,以便于模型学习。
            模型选择:选择合适的算法,如决策树、支持向量机、神经网络等。
            训练:使用训练数据集调整模型参数,最小化预测输出与实际标签之间的差距(损失函数)。
            验证与调优:使用验证集评估模型性能,调整超参数以优化模型。
            测试:最后使用独立的测试集评估模型的泛化能力,确保模型不仅在训练数据上表现良好,也能在未见过的新数据上做出准确预测。

    (三)、监督学习分类算法(Classification)

            定义:分类任务的目标是学习一个模型,该模型能够将输入数据分配到预定义的几个类别中的一个。这是一个监督学习问题,需要有一组已经标记好类别的训练数据,模型会根据这些数据学习如何区分不同类别。
            例子:垃圾邮件检测(垃圾邮件 vs. 非垃圾邮件)、图像识别(猫 vs. 狗)。


    二、 AdaBoost

    (一)、定义

    AdaBoost是一种集成学习方法,最初由Yoav Freund和Robert Schapire在1995年提出。它是一种迭代的算法,用于提升弱分类器的表现,将其组合成一个强分类器。弱分类器是指那些仅比随机猜测略好的分类器,而AdaBoost通过加权组合这些弱分类器,可以得到一个表现显著优于单个弱分类器的强分类器。

    (二)、基本概念

    • 弱分类器:能够对数据集进行分类,但是准确率略高于随机猜测的分类器。
    • 强分类器:由多个弱分类器组合而成,能够对数据集进行更准确的分类。
    • 样本权重:在AdaBoost中,每个训练样本都有一个权重,错误分类的样本权重会被提高,以便后续的弱分类器更加关注这些样本。
    • 弱分类器权重:每个弱分类器在最终强分类器中的贡献程度,是由其在训练集上的分类错误率决定的。

    (三)、训练过程概要

    1. 初始化样本权重:最初,所有训练样本的权重相等。
    2. 训练弱分类器:在每一轮中,使用当前的样本权重训练一个弱分类器。
    3. 计算弱分类器误差率:评估弱分类器在带权重训练集上的分类错误率。
    4. 更新弱分类器权重:根据分类器的误差率,计算其在强分类器中的权重。
    5. 更新样本权重:分类错误的样本权重增加,正确分类的样本权重降低,以便下一轮训练时更多关注错误分类的样本。
    6. 迭代训练:重复上述过程T次(T是预设的迭代次数或直到达到某个停止条件),每次迭代都会产生一个新的弱分类器。
    7. 组合弱分类器:最终,所有弱分类器按照其权重被组合成一个强分类器。

    (四)、训练过程详细解释 

    1、 初始化样本权重

    • 开始时,给定训练数据集 D={(x1,y1),(x2,y2),...,(xN,yN)},其中 xi 是特征向量,yi是对应的类标。
    • 每个样本 i 的初始权重 设为 ,这意味着所有样本在第一轮中具有相同的权重。

    2、迭代训练弱分类器

    对于 t=1,2,...,T(T是预设的迭代次数或弱分类器的数量):

    1. 训练弱分类器:使用当前的样本权重 wi(t),训练一个弱分类器 ht(x)。弱分类器的目标是使加权训练误差最小。
    2. 计算分类器错误率:计算弱分类器 htht​ 在带权重的训练数据集上的错误率 ϵt:

    其中,2 是指示函数,如果条件成立返回1,否则返回0。

    3. 计算分类器权重:基于分类器的错误率 ϵt​,计算分类器 htht​ 的权重 αt: 

    如果 ϵt≥0.5,则舍弃该分类器,因为其性能不优于随机猜测。

    3、更新样本权重

    根据弱分类器 ht的性能,更新下一个迭代中每个样本的权重: 

    其中,Zt 是规范化因子,确保所有样本权重之和为1: 

    4、构建强分类器

    当所有 T 个弱分类器都被训练完毕,最终的强分类器 H(x) 为: 

    (五)、特点

    • 自适应性:AdaBoost能够自动调整训练样本的权重,使分类器更关注难以分类的样本。
    • 鲁棒性:对异常值和噪声有较好的抵抗能力,因为它会自动减少异常值的权重。
    • 易于实现:基于简单的弱分类器,如决策树桩,易于实现和应用。
    • 潜在过拟合:在迭代次数过多时,AdaBoost可能会过度拟合训练数据,需要适当控制迭代次数或采用其他正则化技术。

    (六)、适用场景

    • 二分类问题:AdaBoost最初设计用于解决二分类问题,但也可以通过One-vs-One或One-vs-All策略扩展到多分类问题。
    • 特征选择:由于AdaBoost能够突出重要特征,因此它也被用于特征选择。
    • 数据不平衡问题:通过调整样本权重,AdaBoost能够处理类别不平衡的数据集。

    (七)、扩展

    • 多类AdaBoost:通过扩展AdaBoost到多类分类问题,如AdaBoost.M1、AdaBoost.MH和AdaBoost.MR。
    • 回归问题:AdaBoost可以被修改以解决回归问题,如AdaBoost.R1和AdaBoost.R2。
    • 其他集成学习方法:AdaBoost启发了其他集成学习方法,如Gradient Boosting Machine(GBM)和XGBoost,这些方法在AdaBoost的基础上进行了改进,以提高性能和处理更复杂的数据。

    三、总结

    AdaBoost因其简单、有效和适应性强的特点,在机器学习领域得到了广泛的应用和研究。

     

  • 相关阅读:
    mysql 位操作
    进程调度的基本关系
    Spring Data Redis概述及用法
    CRM客户管理系统源码 带移动端APP+H5+小程序
    Java IO之网络的简介说明
    生命在于学习——Cobalt Strike体验
    Linux 驱动开发 五十六:《ioctl-number.txt》翻译
    【ERROR】ERR_PNPM_NO_IMPORTER_MANIFEST_FOUND No package.json
    iso27001信息安全体系认证咨询
    233062C++&QTday5
  • 原文地址:https://blog.csdn.net/xgq8217/article/details/140972518
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号