• 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值。

    主要优缺点

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

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

  • 相关阅读:
    计算机毕业设计(附源码)python足球爱好者服务平台
    【spring cloud】(六)消息总线——springcloud Bus
    一个程序员的水平能差到什么程度?
    OPC Expert 最新版 Crack-2022-12-05
    衍三的硬件笔记之如何选择MOS管
    自定义View:多点触控(二)-- 多指协作
    Linux系统禁用防火墙和SELinux
    Java虚拟机(JVM)的调优技巧和实战2
    产品技术体系
    java计算机毕业设计小区物业管理系统MyBatis+系统+LW文档+源码+调试部署
  • 原文地址:https://blog.csdn.net/m0_53155317/article/details/126339030