码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 机器学习——集成学习


    10. 集成学习

    文章目录

      • 10. 集成学习
        • 10.1 工作原理
        • 10.2 机器学习中的两个核心任务
        • 10.3 boosting和Bagging
        • 10.4 Bagging
        • 10.5 随机森林构造过程
          • 10.5.1 关键步骤
        • 10.6 随机森林API
          • 10.6.1 sklearn.ensemble.RandomForestClassifier(n_estimators=10, criterion=’gini’, max_depth=None, bootstrap=True, random_state=None, min_samples_split=2)
          • 10.6.2 超参数:n_estimator, max_depth, min_samples_split,min_samples_leaf
        • 10.7 bagging集成优点
          • 10.7.1 优点
        • 10.8 Boosting集成
          • 10.8.1 代表算法
          • 10.8.2 AdaBoost的构造过程小结
          • 10.8.3 API
        • 10.9 bagging集成与boosting集成的区别
          • 10.9.1 数据方面
          • 10.9.2 投票方面
          • 10.9.3 学习顺序
          • 10.9.4 主要作用
        • 10.10 GBDT
          • 10.10.1 主要执行思想
        • 10.11 XGBoost
        • 10.12 泰勒展开式

    通过建立几个模型来解决单一预测问题

    10.1 工作原理

    生成多个分类器/模型,各自独立地学习和作出预测

    • 这些预测最后结合成组合预测,因此优于任何一个单分类的做出预测

    10.2 机器学习中的两个核心任务

    1. 如何优化训练数据 解决 欠拟合问题

    2. 如何提升泛化性能 解决 过拟合问题

    10.3 boosting和Bagging

    在这里插入图片描述

    10.4 Bagging

    主要实现过程

      1. 采样
      1. 学习
      1. 集成

    10.5 随机森林构造过程

    随机森林是一个包含多个决策树的分类器,并且其输出的类别是由个别树输出的类别的众数而定

    随机森林 = Bagging + 决策树

    在这里插入图片描述

    10.5.1 关键步骤

    • 1)一次随机选出一个样本,有放回的抽样,重复N次(有可能出现重复的样本)
    • 2) 随机去选出m个特征, m <

    10.6 随机森林API

    10.6.1 sklearn.ensemble.RandomForestClassifier(n_estimators=10, criterion=’gini’, max_depth=None, bootstrap=True, random_state=None, min_samples_split=2)

    • n_estimators:integer,optional(default = 10)森林里的树木数量

    • Criterion:string,可选(default =“gini”)分割特征的测量方法

    • max_depth:integer或None,可选(默认=无)树的最大深度

    • max_features="auto”,每个决策树的最大特征数量

      • If “auto”, then max_features=sqrt(n_features).
      • If “sqrt”, then max_features=sqrt(n_features)(same as “auto”).
      • If “log2”, then max_features=log2(n_features).
      • If None, then max_features=n_features.
    • bootstrap:boolean,optional(default = True)是否在构建树时使用放回抽样

    • min_samples_split:节点划分最少样本数

    • min_samples_leaf:叶子节点的最小样本数

    10.6.2 超参数:n_estimator, max_depth, min_samples_split,min_samples_leaf

    10.7 bagging集成优点

    Bagging + 决策树/线性回归/逻辑回归/深度学习… = bagging集成学习方法

    10.7.1 优点

    • 均可在原有算法上提高约2%左右的泛化正确率
    • 简单, 方便, 通用

    10.8 Boosting集成

    每新加入一个弱学习器,整体能力就会得到提升

    10.8.1 代表算法

    • Adaboost
    • GBDT
    • XGBoost

    10.8.2 AdaBoost的构造过程小结

    在这里插入图片描述

    10.8.3 API

    • from sklearn.ensemble import AdaBoostClassifier

    10.9 bagging集成与boosting集成的区别

    10.9.1 数据方面

    • Bagging:对数据进行采样训练;

    Boosting:根据前一轮学习结果调整数据的重要性。

    10.9.2 投票方面

    • Bagging:所有学习器平权投票;

    Boosting:对学习器进行加权投票。

    10.9.3 学习顺序

    • Bagging的学习是并行的,每个学习器没有依赖关系;

    Boosting学习是串行,学习有先后顺序。

    10.9.4 主要作用

    • Bagging主要用于提高泛化性能(解决过拟合,也可以说降低方差)

    Boosting主要用于提高训练精度 (解决欠拟合,也可以说降低偏差)

    10.10 GBDT

    梯度提升决策树(GBDT Gradient Boosting Decision Tree)

    一种迭代的决策树算法,该算法由多棵决策树组成,所有树的结论累加起来做最终答案

    GBDT = 梯度下降 + Boosting + 决策树

    10.10.1 主要执行思想

    • 1.使用梯度下降法优化代价函数;
    • 2.使用一层决策树作为弱学习器,负梯度作为目标值;
    • 3.利用boosting思想进行集成

    10.11 XGBoost

    XGBoost= 二阶泰勒展开+boosting+决策树+正则化

    • 二阶泰勒展开:每一轮学习中,XGBoost对损失函数进行二阶泰勒展开,使用一阶和二阶梯度进行优化。
    • Boosting:XGBoost使用Boosting提升思想对多个弱学习器进行迭代式学习
    • 决策树:在每一轮学习中,XGBoost使用决策树算法作为弱学习进行优化。
    • 正则化:在优化过程中XGBoost为防止过拟合,在损失函数中加入惩罚项,限制决策树的叶子节点个数以及决策树叶子节点的值。

    10.12 泰勒展开式

    在这里插入图片描述

    泰勒展开越多,计算结果越精确

  • 相关阅读:
    【CSS】Flex布局及Quasar辅助类之Container
    代码随想录 | Day 51 - LeetCode 309.最佳买卖股票时机含冷冻期、LeetCode 714.买卖股票的最佳时机含手续费
    openxr runtime Monado 源码解析 源码分析:整体介绍 模块架构 模块作用 进程 线程模型 整体流程
    小功能⭐️Unity快捷键、路径及常用特性
    Java毕业设计 JSP+MySQL幼儿园信息管理系统
    TypeScript基础知识点
    Nginx上传模块nginx-upload-module安装和配置
    下载stm32f10x标准外设库
    工作之余happy一下(统计考试科目的成绩)
    Flutter 挖孔屏的状态栏占用问题怎么解决,横屏后去掉了状态栏,还是会有一块黑色的竖条
  • 原文地址:https://blog.csdn.net/weixin_44226181/article/details/126170253
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | 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号