Boosting 框架

Boosting

boosting介绍

  • Boosting是利用n个弱学习器串行生成并融合从而减少整体偏差的集成学习框架

  • Boosting算法的三个要素

    1. 函数模型: Boosting的函数模型是叠加型的,即

    F ( x ) = ∑ i = 1 k f i ( x ; θ i ) F(x)=\sum_{i=1}^k f_i\left(x ; \theta_i\right) F(x)=i=1∑kfi(x;θi)
    2. 目标函数: 选定某种损失函数作为优化目标

    E { F ( x ) } = E { ∑ i = 1 k f i ( x ; θ i ) } E\{F(x)\}=E\left\{\sum_{i=1}^k f_i\left(x ; \theta_i\right)\right\} E{F(x)}=E{i=1∑kfi(x;θi)}
    3. 优化算法: 贪婪地逐步优化,即

    θ m ∗ = arg ⁡ min ⁡ θ m E { ∑ i = 1 m − 1 f i ( x ; θ i ∗ ) + f m ( x ; θ m ) } \theta_m^*=\arg \min {\theta_m} E\left\{\sum{i=1}^{m-1} f_i\left(x ; \theta_i^*\right)+f_m\left(x ; \theta_m\right)\right\} θm∗=argθmminE{i=1∑m−1fi(x;θi∗)+fm(x;θm)}

  • 需要解决两个问题:

    1. 如何调整训练集,使得在训练集上训练的弱分类器得以进行;
    2. 如何将训练得到的各个弱分类器联合起来形成强分类器。
  • 特点

    1. Boosting是一种框架算法,拥有系列算法,如AdaBoost,GradientBoosting,LogitBoost等算法。
    2. Boosting系列算法的主要区别在于其三要素选取的函数不同
    3. 可以提高任意给定学习算法准确度
    4. 训练过程为阶梯状,弱分类器按次序一一进行训练(实现上可以做到并行),弱分类器的训练集按照某种策略每次都进行一定的转化。最后以一定的方式将弱分类器组合成一个强分类器。
    5. Boosting中所有的弱分类器可以是不同类的分类器

Gradient Boosting代码

  • Gradient Boosting代码

    python 复制代码
    class GradientBoosting:
    	def __init__(self, base_learner, n_learners, learning_rate):
    		self.learners = clone(base_learner for _ in range(n_learners)]
    		self.lr = learning_rate
    	
    	def fit(self, X, y):
    		residual = y.copy()
    		for learner in self.learners:
    			learner.fit(X, residual)
    			residual -= self.lr * learner.predict(X)
    	
    	def predict(self,X):
    		preds = [learner.predict(X) for learner in self.learners]
    		return np.array(preds).sum(axis=0) * self.lr 
相关推荐
奥惟斯10 分钟前
GEO 上线前,先把这 3 类实体信号地基补上
人工智能·深度学习·机器学习·自然语言处理·数据挖掘·数据分析·知识图谱
孟陬10 分钟前
Foobar 技术周刊#159:当看不懂代码时,如何高效排障调试。脏页陷阱:一条只读查询,写入数 TB 数据。推测解码:大模型加速利器
前端·人工智能·后端
像风一样自由202015 分钟前
4.DockerCompose是什么为什么算法服务需要多个容器
人工智能·rag·智能体
FII工业富联科技服务19 分钟前
工业智能体技术架构解析:六级部署、核心模块与制造场景实践
人工智能·架构·制造
2601_9669496525 分钟前
如何封装 qd.klines.batch(),让批量 K 线查询函数在多个策略中复用?
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
长不大的杨瑞杰27 分钟前
OpenCode v2 配置工程实战:Config 优先级、JSONC、变量替换与多环境治理
人工智能·安全·云计算·软件工程·devops
.Bryce.35 分钟前
从零到一开发技术名词大全:从需求分析到 AI Agent 工程
java·网络·人工智能·agent·需求分析·agent评测
高升说43 分钟前
手眼方案怎么选:眼在手上与眼在手外的工程对比
人工智能·数码相机
Highcharts.js1 小时前
智能数据分析组件Orbit 正式发布与快速上手体验教程
前端·人工智能·信息可视化·数据分析系统·highcharts·orbit·智能可视化
apple_692658851 小时前
基于 Qwen-Image-2.1 的人物替换 LoRA 模型及部署工作流 人物替换的效果 吊打闭源
人工智能·计算机视觉