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 
相关推荐
小墙程序员14 分钟前
机器学习入门(一)什么是机器学习
机器学习
Java中文社群16 分钟前
最火向量数据库Milvus安装使用一条龙!
java·人工智能·后端
豆芽81924 分钟前
强化学习(Reinforcement Learning, RL)和深度学习(Deep Learning, DL)
人工智能·深度学习·机器学习·强化学习
山北雨夜漫步30 分钟前
机器学习 Day14 XGboost(极端梯度提升树)算法
人工智能·算法·机器学习
basketball61632 分钟前
Python torchvision.transforms 下常用图像处理方法
开发语言·图像处理·python
兔子蟹子36 分钟前
Java集合框架解析
java·windows·python
宁酱醇40 分钟前
各种各样的bug合集
开发语言·笔记·python·gitlab·bug
yzx99101342 分钟前
集成学习实际案例
人工智能·机器学习·集成学习
CodeJourney.43 分钟前
DeepSeek与WPS的动态数据可视化图表构建
数据库·人工智能·信息可视化
jndingxin44 分钟前
OpenCV 图形API(62)特征检测-----在图像中查找最显著的角点函数goodFeaturesToTrack()
人工智能·opencv·计算机视觉