• GBDT 算法


    GBDT (Gradient Boosting Decision Tree) 梯度提升迭代决策树。GBDT 也是 Boosting 算法的一种,但是和 AdaBoost 算法不同(AdaBoost 算法上一篇文章已经介绍);区别如下:AdaBoost 算法是利用前一轮的弱学习器的误差来更新样本权重值,然后一轮一轮的迭代;GBDT 也是迭代,但是 GBDT 要求弱学习器必须是 CART 模型,而且 GBDT 在模型训练的时候,是要求模型预测的样本损失尽可能的小。

    GBDT 直观理解:每一轮预测和实际值有残差,下一轮根据残差再进行预测,最后将所有预测相加,就是结果。

     

    GBDT 模型可以表示为决策树的加法模型:

     

    其中,T(x;θm)表示决策树;θm 为决策树的参数; M为树的个数。

    采用前向分布算法, 首先确定初始提升树 fo(x) = 0, 第 m 步的模型是:

     

    通过经验风险极小化确定下一棵树的参数:(其实就是让残差尽可能的小找到最优划分点)

     

    这里的 L() 是损失函数,回归算法选择的损失函数一般是均方差(最小二乘)或者绝对值误差;而在分类算法中一般的损失函数选择对数函数来表示

    GBDT 既可以做回归也可以做分类,下面先描述一下做回归的算法流程:

    已知一个训练数据集 T = {(x1,y1),(x2,y2),...,(xn,yn)}, 如果将训练集分为不同的区域 R1,R2,...,Rn,然后可以确定每个区域输出的常识 c,c 的计算是将每个区域的 y 值相加再除以 y 的个数,其实就是求一个平均值。树可以表示为:

     

    然后通过下图方式来确定具体分割点:

     

    我将李航的统计学方法里面的例子粘出来,就知道提升树是如何计算的了:

     
     
     

    以上就是 GBDT 选择分割点的过程, 如果特征有多个的话也是一样的道理,选择特征和特征值使得误差最小的点,作为分割点。所以其实 GBDT 也可以用作特征选择,通过GBDT 可以将重要的特征选择出来,当特征非常多的时候可以用来做降维。然后再融合类似逻辑回归这样的模型再进行训练。

  • 相关阅读:
    课堂派题库格式转换程序
    操作系统——进程的状态与转换
    android 通用 Intent
    android上使用蓝牙设备进行语音输入
    讯飞语音听写中数字规整问题
    【Android】隐藏底部虚拟按键
    AudioEffect中文API
    为什么要在onNewIntent的时候要显示的去调用setIntent
    android蓝牙耳机下的语音(输入/识别)及按键监听
    Android如何监听蓝牙耳机的按键事件
  • 原文地址:https://www.cnblogs.com/kaobeixingfu/p/11635831.html
Copyright © 2020-2023  润新知