• xgboost 与 lgbm


    相关性分析模型可行性报告

    基于数值的模型-xgboost

    简介

    XGBoost是一个优化的分布式梯度提升库,旨在高效,灵活和便携。它在梯度提升框架下实现机器学习算法。XGBoost提供了一个并行树提升(也称为GBDT,GBM),可以快速准确地解决许多数据科学问题。

    XGBoost 文档 — xgboost 1.6.1 文档

    GBDT梯度提升树

    GBDT算法是一种非常常用的Boosting算法(一种集成学习模型,将弱学习器不断调整权重,提升为强学习器),GBDT算法将损失函数的负梯度作为残差的近似值,不断使用残差迭代和拟合回归树,最终生成强学习器。

    核心思想

    XGBoost算法在某种程度上可以说是GBDT算法的改良版,两者在本质上都是利用了Boosting算法中拟合残差的思想。如下图所示,首先建立一棵初始决策树,其中初始决策树的预测结果不完全准确,会产生一些残差,因此会用新的决策树来拟合该残差,新的决策树又会产生新的残差,这是再构建新的决策树来拟合新的残差······如此迭代下去,直至符合预先设定的条件为止。

     

    主要优缺点

    优点:简单易用、在处理大规模数据集时速度快效果好,对内存等硬件资源要求不高,鲁棒性强、可以自动填充缺失值

    缺点:只能处理连续性数数值

    处理为数值型

    将离散型特征编码为1,2,3···

    编码方式解释如下:

    例如:特征CPU的取值为i3,i5,i7,i9···

    编码前编码后
    i31
    i52
    i73
    i94
    i94
    i73
    i31

    基于标签的模型-lightgbm

    简介

    lightgbm算法由微软公司开发,它和xgboost算法一样是对GBDT算法的高效实现,原理上与xgboost算法类似,但树的生长过程不一样,xgboost的生长是level-wise的,即一层一层生长的,而lightgbm是leaf-wise即梯度优先的,同时lightgbm使用直方图算法,先对特征值进行装箱处理,形成一个一个的bins。对于连续特征来说,装箱处理就是特征工程中的离散化:如[0,0.3)—>0,[0.3,0.7)—->1等。在Lightgbm中默认的#bins为256(1个字节的能表示的长度,可以设置)。对于分类特征来说,则是每一种取值放入一个bin,且当取值的个数大于max bin数时,会忽略那些很少出现的category值。

    主要优缺点

    优点:训练效率更高,低内存使用,准确率更高,支持并行化学习,可以处理大规模数据,适合离散类数据

    缺点:会对连续值特征进行装箱处理,造成精度丢失。

  • 相关阅读:
    太空射击第16课: 道具(Part 2)
    hive里因为列名用了关键字导致建表失败
    AbstractHandlerMethodAdapter类简介说明
    数据结构 堆——详细动画图解,形象理解
    ChatGPT驱动下,网站AI客服该如何进步和创新
    老卫带你学---leetcode刷题(72. 编辑距离)
    NPM安装后报错:ERROR: npm v10.2.1 is known not to run on Node.js v10.24.1.
    网安播报|MOVEit 被发现9.1 分高危漏洞,威胁全球 2700 多家组织
    江苏2022农民丰收节 国稻种芯:主场活动在苏中地区泰兴开幕
    Spring使用RestTemplate返回的嵌套实体对象为空,转换json报错
  • 原文地址:https://blog.csdn.net/m0_53155317/article/details/126339030