作者:杜博亚,阿里算法工程师,复旦大学计算机硕士,BDKE 之光。

1.从机器学习三要素的角度

1.1 模型

本质上来说,他们都是监督学习,判别模型,直接对数据的分布建模,不尝试挖据隐含变量,这些方面是大体相同的。但是又因为一个是线性模型,一个是非线性模型,因此其具体模型的结构导致了VC维的不同:其中,Logistic Regression作为线性分类器,它的VC维是d+1,而 GBDT 作为boosting模型,可以无限分裂,具有无限逼近样本VC维的特点,因此其VC维远远大于d+1,这都是由于其线性分类器的特征决定的,归结起来,是Logistic Regression对数据线性可分的假设导致的

1.2 策略

从 Loss(经验风险最小化) + 正则(结构风险最小化) 的框架开始说起;

「从Loss的角度:」

因为 Logistic Regression 的输出是 y = 1 的概率,所以在极大似然下,Logistic Regression的Loss是交叉熵,此时,Logistic Regression的准则是最大熵原理,也就是“为了追求最小分类误差,追求最大熵Loss”,「本质上是分类器算法,而且对数据的噪声具有高斯假设」;而 GBDT 采用 CART 树作为基分类器,其无论是处理分类还是回归均是将采用回归拟合(将分类问题通过 softmax 转换为回归问题,具体可参考本博客 GBDT 章节),用当前轮 CART 树拟合前一轮目标函数与实际值的负梯度:










「本质上是回归算法」

也正是因为 GBDT 采用的 CART 树模型作为基分类器进行负梯度拟合,其是一种对特征样本空间进行划分的策略,不能使用 SGD 等梯度优化算法,而是 CART 树自身的节点分裂策略:均方差(回归) 也带来了算法上的不同;GBDT 损失函数值得是前一轮拟合模型与实际值的差异,而树节点内部分裂的特征选择则是固定为 CART 的均方差,目标损失函数可以自定义,当前轮 CART 树旨在拟合负梯度。

「从特征空间的角度:」就是因为 Logistic Regression 是特征的线性组合求交叉熵的最小化,也就是对特征的线性组合做 logistic,使得Logistic Regression会在特征空间中做线性分界面,适用于分类任务;

而 GBDT 采用 CART 树作为基分类器,其每轮树的特征拟合都是对特征空间做平行于坐标轴的空间分割,所以自带特征选择和可解释性,GBDT 即可处理分类问题也可解决回归问题,只是其统一采用回归思路进行求解(试想,如果不将分类转换为回归问题,GBDT 每轮目标函数旨在拟合上一轮组合模型的负梯度,分类信息无法求梯度,故而依旧是采用 softmax 转换为回归问题进行求解)。

「线性分类器」(处理线性可分)有三大类:「感知器准则函数、SVM、Fisher准则」

「感知准则函数」 :准则函数以使错分类样本到分界面距离之和最小为原则。其优点是通过错分类样本提供的信息对分类器函数进行修正,这种准则是人工神经元网络多层感知器的基础。

「支持向量机」 :基本思想是在两类线性可分条件下,所设计的分类器界面使两类之间的间隔为最大,它的基本出发点是使期望泛化风险尽可能小。(使用核函数可解决非线性问题)

「Fisher 准则」 :更广泛的称呼是线性判别分析(LDA),将所有样本投影到一条原点出发的直线,使得同类样本距离尽可能小,不同类样本距离尽可能大,具体为最大化“广义瑞利商”。根据两类样本一般类内密集,类间分离的特点,寻找线性分类器最佳的法线向量方向,使两类样本在该方向上的投影满足类内尽可能密集,类间尽可能分开。这种度量通过类内离散矩阵 Sw 和类间离散矩阵 Sb 实现。

「从正则的角度:」

Logistic Regression 的正则采用一种约束参数稀疏的方式,其中 L2 正则整体约束权重系数的均方和,使得权重分布更均匀,而 L1 正则则是约束权重系数绝对值和,其自带特征选择特性;

GBDT 的正则:

  • 弱算法的个数T,就是迭代T轮。T的大小就影响着算法的复杂度

  • 步长(Shrinkage)在每一轮迭代中,原来采用进行更新,可以加入步长v,使得一次不更新那么多:

XGBoost的正则是在 GBDT 的基础上又添加了是一棵树里面节点的个数,以及每个树叶子节点上面输出分数的 L2 模平方。

区别在于 LR 采用对特征系数进行整体的限定,GBDT 采用迭代的误差控制本轮参数的增长;

1.3 算法

Logistic Regression 若采用 SGB, Momentum, SGD with Nesterov Acceleration 等算法,只用到了一阶导数信息(一阶动量),若用 AdaGrad, AdaDelta / RMSProp, Adam, Nadam 则用到了一阶导数的平方(二阶动量), 牛顿法则用到了二阶导数信息,

而 GBDT 直接拟合上一轮组合函数的特征梯度,只用到了一阶倒数信息,XGBoost 则是用到了二阶导数信息。

SAG/SAGA等优化器在scikit-learn上可用,但是业界用得比较多的还是BGFS,L-BGFS等,个人认为是计算量的原因,Logistic Regression模型很快就可以收敛,在线性可分的空间中也不容易出现鞍点,而且一般用Logistic Regression模型的数据量都比较大,大到不能上更复杂的模型,所以优化方法一般都是往计算量小的方向做。

2.从特征的角度

2.1 特征组合

如前所说,GBDT 特征选择方法采用最小化均方损失来寻找分裂特征及对应分裂点,所以自动会在当前根据特征 A 分裂的子树下寻求其他能使负梯度最小的其他特征 B,这样就自动具备寻求好的特征组合的性能,因此也能给出哪些特征比较重要(根据该特征被选作分裂特征的次数)

而 LR 只是一次性地寻求最大化熵的过程,对每一维的特征都假设独立,因此只具备对已有特征空间进行分割的能力,更不会对特征空间进行升维(特征组合)

2.2 特征的稀疏性

如前所述,Logistic Regression不具有特征组合的能力,并假设特征各个维度独立,因此只具有线性分界面,实际应用中,多数特征之间有相关性,只有维度特别大的稀疏数据中特征才会近似独立,所以适合应用在特征稀疏的数据上。而对于 GBDT,其更适合处理稠密特征,如 GBDT+LR 的Facebook论文中,对于连续型特征导入 GBDT 做特征组合来代替一部分手工特征工程,而对于 ID 类特征的做法往往是 one-hot 之后直接传入 LR,或者先 hash,再 one-hot 传入树中进行特征工程,而目前的主流做法是直接 one-hot + embedding 来将高维稀疏特征压缩为低纬稠密特征,也进一步引入了语意信息,有利于特征的表达。

3.数据假设不同

逻辑回归的「第一个」基本假设是**假设数据服从伯努利分布。**伯努利分布有一个简单的例子是抛硬币,抛中为正面的概率是 p,抛中为负面的概率是 1−p。在逻辑回归这个模型里面是假设












为样本为正的概率,














为样本为负的概率。那么整个模型可以描述为:


















逻辑回归的第二个假设是假设样本为正的概率是 :



























所以逻辑回归的最终形式 :





































总结,Logistic Regression的数据分布假设:

  1. 噪声是高斯分布的

  2. 数据服从伯努利分布

  3. 特征独立

而 GBDT 并未对数据做出上述假设。


往期精彩回顾适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载机器学习的数学基础专辑
获取本站知识星球优惠券,复制链接直接打开:
https://t.zsxq.com/qFiUFMV
本站qq群704220115。加入微信群请扫码:

【机器学习】GBDT 与 LR 的区别总结相关推荐

  1. 【机器学习基础】GBDT 与 LR 的区别总结

    作者:杜博亚,阿里算法工程师,复旦大学计算机硕士,BDKE 之光. 1.从机器学习三要素的角度 1.1 模型 本质上来说,他们都是监督学习,判别模型,直接对数据的分布建模,不尝试挖据隐含变量,这些方面 ...

  2. CTR 预测理论(九):Boosting 集成算法中 Adaboost, GBDT 与 XGBoost 的区别

    https://blog.csdn.net/Dby_freedom/article/details/81975255 最近总结树模型,尝试将主流 Boosting 实现方式做一个分析汇总,文中部分内容 ...

  3. 杨鹏谈世纪佳缘推荐算法:基于Spark GraphX,弃GBDT和LR用FM

     杨鹏谈世纪佳缘推荐算法:基于Spark GraphX,弃GBDT和LR用FM 发表于2015-09-30 09:53| 1447次阅读| 来源CSDN| 2 条评论| 作者杨鹏 机器学习推荐算法 ...

  4. CTR预估中GBDT与LR融合方案

    1. 背景 CTR预估(Click-Through Rate Prediction)是互联网计算广告中的关键环节,预估准确性直接影响公司广告收入.CTR预估中用的最多的模型是LR(Logistic R ...

  5. 机器学习中precision和accuracy区别

    机器学习中precision和accuracy区别 一些术语 对于一个二分类问题,我们定义如下指标: TP:True Positive,即正确预测出的正样本个数 FP:False Positive,即 ...

  6. 机器学习(二)线性模型---LR

    机器学习(二)线性模型-LR 2.2 LR   2.2.1 基础   LR是一种二分类模型,属于线性模型的一种,是广义线性分类模型,采用极大似然估计,具有概率可解释性   条件概率: P(y=1|x) ...

  7. AdaBoost -> GBDT -> XGBOOST 的区别

    AdaBoost -> GBDT -> XGBOOST 最主要的区别在于如何识别模型的问题. AdaBoost 通过不断修改样本权重(增大分错样本权重,降低分对样本权重),不断加入弱分类器 ...

  8. GBDT+LR记录- 9.7代码训练GBDT与LR混合模型

    GBDT+LR记录 9.7代码训练GBDT与LR混合模型 在上一节课的train.py中,新建一个函数train_tree_and_lr_model def train_tree_and_lr_mod ...

  9. 深度学习笔记——基于传统机器学习算法(LR、SVM、GBDT、RandomForest)的句子对匹配方法

    句子对匹配(Sentence Pair Matching)问题是NLP中非常常见的一类问题,所谓"句子对匹配",就是说给定两个句子S1和S2,任务目标是判断这两个句子是否具备某种类 ...

最新文章

  1. 更新CentOS Mysql到官方较新版本[以6.5为例]
  2. android中webview loadUrl(String url,Map header)方法和postUrl(String url,byte[] postData)方法同时使用问题;...
  3. AI公开课:19.04.10颜水成—360副总裁《人工智能:观察与实践》课堂笔记以及个人感悟—191017再次更新
  4. 数据结构~~~线性表复习(栈的应用)
  5. 【转】1.A(译).NET4.X 并行任务中Task.Start()的FAQ
  6. linux7 配置mysql5.7字符集编码
  7. mysql查看现在使用的引擎_mysql查看当前库使用的引擎及简单操作
  8. 【C#】VS 2017 如何创建项模板---自动添加头部注释
  9. docker java 中文乱码_java使用awt包在生产环境docker部署时出现中文乱码的处理
  10. 陆奇李开复余凯谈AI十年机遇,Hinton和LeCun会如何评价?
  11. js时间格式化 YYYY/MM/DD HH:MM:SSS
  12. 2014-07-22 如何成为一名合格的职业人士
  13. STL 标准容器的选择
  14. DB2 表的常用命令
  15. cglib 动态代理原理详解
  16. Serializable serialVersionUID作用
  17. WPF—TimeLine类
  18. Can't connect to MySQL server on 'XXXX' (10055) 解决方案
  19. 20201120翻译_disba基于Python的面波正演模拟程序包
  20. 海南大学考研人,你真的马上就要上岸了

热门文章

  1. 用excel打造报表查询系统
  2. 接口 类型转换 try-catch(学习笔记)
  3. 如何理解Library List
  4. 批量添加自定义用户控制,界面闪烁解决方案
  5. pat 甲级1013
  6. 《入门经典》——6.24
  7. [转载]WSUS客户端排错--使用wsus client tools
  8. 如何选择适合自己公司的移动办公系统?
  9. setTimeout
  10. C++中的虚函数(virtual function)