美文网首页深度学习
2020机器学习GBDT 分类问题(2)

2020机器学习GBDT 分类问题(2)

作者: zidea | 来源:发表于2020-03-24 19:46 被阅读0次
machine_learning.jpg

现在我们通过一系列的推导得出 0.69 是如何得到,为什么将 0.69 作为模型初始化的参数。或者说我们创建叶节点可以给出每个样本的喜欢美国队长2的预测值 0.69

到现在为止我们已经完成第一步,从第二步开始我们将创建决策树来拟合残差,不断提升模型达到我们预期效果,第二步是一个迭代的过程,每一次迭代都会得到一颗决策树

第 2 步

  • 计算 r_{im} = -\left[ \frac{\partial L(y_i,F(x_i))}{\partial F(x_i)}\right]_{F(x) = F_{m-1}(x)} \, for \, i = 1,\dots,n
    • -\left[ \frac{\partial L(y_i,F(x_i))}{\partial F(x_i)}\right]_{F(x) = F_{m-1}(x)} 看起来有点复杂,其实就是一个损失函数的导数,前面我们已经推导出损失函数导数
    • \frac{d}{d \log(odds)} = -Observed \times \log(odds) + \log (1 + e^{\log(odds)}) 就是对数几率表示损失函数的导数
    • 不过需要注意前面有一个符号表示负梯度是下降的方向。
      计算残差表达式(Observed -c)
    • 因为p = -\left[ \frac{\partial L(y_i,F(x_i))}{\partial F(x_i)}\right]_{F(x) = F_{m-1}(x)} 那么可以就可以将表达式修改为Observed - p
    • F(x) = F_{m-1(x)} 表示F(x) 就是上一颗决策树,这里我们初始F_0(x) = \log(\frac{2}{1}) = 0.69
    • 现在可以计算通过Observed - 0.67来计算每一个样本r_{i,m}的伪残差,i 表示第 i 样本,m 表示我们构建的第 m 颗决策树
Likes Popcorn Age Favorite Color American Caption r_{i,1}
Yes 12 Blue Yes 0.33
Yes 87 Green Yes 0.33
No 44 Blue No -0.67

到现在为止我们完成对每一决策树计算其伪残差的运算。

  • 创建决策树来拟合残差r_{im} ,决策树会节点对数据进行划分区域R_{jm} \, for \, j = 1,\dots, J_m
    • 构建地 1 颗决策树 m = 1 根据是否 popCorn 来进行划分
    • likes Popcorn
      • [0.33]
      • [0.33,-0.7]
    • 这里决策树将数据(根据叶节点)划分为两个区域分别R_{1,1}R_{2,1} ,前一个 j 表示 m 决策树划分第 j 个区域。
    • 现在根据决策树来计算每一个叶节点的输出,每一个
  • 对于每一个叶节点划分区域计算残差的最小 \gamma_{jm} = \arg \min_{\gamma} \sum_{x_i \in R_ij} L(y_i,F_{m-1}(x_i) + \gamma)
    • 这里输出值就是在\gamma让损失函数的和最小
    • x_i \in R_{ij} 表示残差区域(也就是决策树叶节点)划分出的区域
    • \gamma_{1,1} = \arg \min_{\gamma} \sum_{x_i \in R_{ij}} -y_i \times \left[ F_{m-1}(x_i) + \gamma \right] + \log (1 + e^{F_{m-1}(x_i) + \gamma})
      -Observed \times \gamma + \log(1 + e^{\gamma}) \, for\,\gamma = \log(odds)
      因为R_{1,1}中只有一条数据s
  • 更新F_m(x) = F_{m-1}(x) + \nu \sum_{j=1}^{J_m} \gamma_m I(x \in R_{jm})

最后希望大家关注我们微信公众号


wechat.jpeg

相关文章

网友评论

    本文标题:2020机器学习GBDT 分类问题(2)

    本文链接:https://www.haomeiwen.com/subject/zbciyhtx.html