zoukankan      html  css  js  c++  java
  • 集成学习(Ensembling Learning)

    集成学习(Ensembling Learning)

    标签(空格分隔): 机器学习


    Adabost

    对于一些弱分类器来说,如何通过组合方法构成一个强分类器。一般的思路是:改变训练数据的概率分布(权值分布),针对不同的训练数据分布调用弱学习算法学习一系列的弱分类器,然后将他们组合起来,形成强分类器。
    需要解决的问题有:

    • 在每一轮如何改变训练数据的权值或概率分布?
    • 如何将若分类器组合成一个强分类器。

    已知数据集(T = {(x_{1},y_{1}),(x_{2},y_{2}),..., (x_{n},y_{n}) })

    1. 初始化训练数据集(T)的权值分布:(D_{1} = {w_{11}, w_{12},..., w_{1n} }),则预测的损失函数为:(J = sum_{i=1}^{n}w_{1i}L(hat{y}_{i} - y_{i}));
    2. 使用带有权值分布的数据集(D_{1})学习,得到一个基本分类器:(G_{1}(x));
    3. 计算分类器(G_{1}(x))在训练数据集上的分类误差率:(epsilon_{1} = sum_{i=1}^{n}w_{1i}I(G_{1}(x_{i}) eq y_{i}));(该分类错误率 为)
    4. 计算每个分类器的系数:(alpha_{1} = frac{1}{2}lnfrac{1-epsilon_{1}}{epsilon_{1}}).
    5. 根据下式更新数据集分布(D_{m}): ((w_{mi})为第m个分类器中每个数据i的权重)

    [w_{mi}= egin{cases} frac{w_{mi}}{Z_{m}}e^{-alpha_{m}}, & ext {$G_{m}(x_{i}) = y_{i}$ } \ frac{w_{mi}}{Z_{m}}e^{-alpha_{m}}, & ext{$G_{m}(x_{i}) eq y_{i}$ } end{cases} ]

    (通过上式计算,可以使被基本分类器(G_{m})正确分类的样本的权值减小,而错误分类的样本权值增大)
    6. 最终分类器为:(G(x) = sign(sum_{m=1}^{M}alpha_{m}G_{m}(x)))

    梯度提升(Gradient Boosting)

    与Adaboost不同的是,每一步的弱预测模型生成都是依据损失函数的梯度方向,则称之为梯度提升。

    梯度提升算法首先给定一个目标损失函数,它的定义域是所有可行的弱函数集合(基函数);
    提升算法通过迭代的选择一个扶梯度方向上的基函数来逐渐逼近局部极小值。

    首先,给定输入向量x和输出变量y组成的若干训练样本({(x_{1}, y_{1}), (x_{2}, y_{2}),...,(x_{n}, y_{n}) }),目标是找到近似函数(hat{F}(x)),使得损失函数(L(y,F(x)))的损失值最小。

    1. 给定常函数(F_{0}(x):) (F_{0}(x) = argmin_{gamma}sum_{i=1}^{n}L(y_{i}, gamma))

    2. 对于m=1 到 M
      a. 计算伪残差(r_{im} = [frac{partial L(y_{i}, F(x_{i}))}{partial F(x_{i})}]_{F(x) = F_{m-1}(x)});
      b. 使用数据({(x_{i},r_{im})}_{i=1}^{n})计算拟合残差的基函数(f_{m}(x));
      c. 计算步长(gamma_{m} = argmin_{gamma}sum_{i=1}^{n}L(y_{i},F_{m-1}(x_{i}) - gamma * f_{m}(x_{i})));

    3. 更新模型(F_{m}(x) = F_{m-1}(x) - gamma_{m}f_{m}(x_{i})).

  • 相关阅读:
    Linux的inode的理解
    linux中ctrl+z和ctrl+c的区别
    linux后台运行和关闭、查看后台任务
    解决Could not get lock /var/cache/apt/archives/lock
    Spring Boot 2.1.5 正式发布,1.5.x 即将结束使命!
    【免费】某平台16980元编程课程资料下载,仅此1次
    秒杀系统架构分析与实战,一文带你搞懂秒杀架构!
    阿里数据库大牛的 MySQL 学习指南!
    Intellij IDEA 撸码最头大的问题。。
    Java 中的 SPI 机制是什么鬼?高级 Java 必须掌握!
  • 原文地址:https://www.cnblogs.com/little-YTMM/p/5643437.html
Copyright © 2011-2022 走看看