当前位置:网站首页>Machine Learning - Ensemble Learning
Machine Learning - Ensemble Learning
2022-08-05 10:57:00 【Ding Jiaxiong】
10. 集成学习
文章目录
通过建立几个模型来解决单一预测问题
10.1 工作原理
生成多个分类器/模型,各自独立地学习和作出预测
- 这些预测最后结合成组合预测,因此优于任何一个单分类的做出预测
10.2 Two core tasks in machine learning
如何优化训练数据 解决 欠拟合问题
如何提升泛化性能 解决 过拟合问题
10.3 boosting和Bagging
10.4 Bagging
主要实现过程
- 采样
- 学习
- 集成
10.5 随机森林构造过程
随机森林是一个包含多个决策树的分类器,并且其输出的类别是由个别树输出的类别的众数而定
随机森林 = Bagging + 决策树
10.5.1 关键步骤
- 1)一次随机选出一个样本,有放回的抽样,重复N次(有可能出现重复的样本)
- 2) 随机去选出m个特征, 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 泰勒展开式
泰勒展开越多,计算结果越精确
边栏推荐
- 2022技能大赛训练题:交换机snmp配置
- 一张图看懂 SQL 的各种 join 用法!
- Detailed explanation of PPOCR detector configuration file parameters
- 【心里效应】98 个著名的心理效应
- 反射修改jsessionid实现Session共享
- Login function and logout function (St. Regis Takeaway)
- 数据可视化(一)
- 教你本地编译运行一个IDEA插件,在IDEA里聊天、下棋、斗地主!
- What are the standards for electrical engineering
- uniapp中的view高度设置100%
猜你喜欢
化繁为简!阿里新产亿级流量系统设计核心原理高级笔记(终极版)
PCB layout must know: teach you to correctly lay out the circuit board of the op amp
FPGA: Use of the development environment Vivado
012_SSS_ Improving Diffusion Model Efficiency Through Patching
双因子与多因子身份验证有什么区别?
《分布式云最佳实践》分论坛,8 月 11 日深圳见
Http-Sumggling缓存漏洞分析
电气工程的标准是什么
阿里全新推出:微服务突击手册,把所有操作都写出来了PDF
教你本地编译运行一个IDEA插件,在IDEA里聊天、下棋、斗地主!
随机推荐
A small test of basic grammar, Go lang1.18 introductory refining tutorial, from Bai Ding to Hongru, basic grammar of go lang and the use of variables EP02
【C语言指针】用指针提升数组的运算效率
教你本地编译运行一个IDEA插件,在IDEA里聊天、下棋、斗地主!
TiDB 6.0 Placement Rules In SQL 使用实践
PPOCR 检测器配置文件参数详解
深入理解 Istio 流量管理的超时时间设置
PostgreSQL 2022 报告:流行度上涨,开源、可靠性和扩展是关键
Create a Dapp, why choose Polkadot?
DocuWare平台——文档管理的内容服务和工作流自动化的平台详细介绍(下)
脱光衣服待着就能减肥,当真有这好事?
GPU-CUDA-图形渲染分析
Nature:猪死亡1小时后,器官再次运转
华为分析&联运活动,助您提升游戏总体付费
字节一面:TCP 和 UDP 可以使用同一个端口吗?
60行从零开始自己动手写FutureTask是什么体验?
秘乐短视频挖矿系统开发详情
UDP通信
数据可视化(一)
Opencv算术操作
2022技能大赛训练题:交换机snmp配置